2013-07-11 103 views
1

我試圖創建Excel文件並向其中寫入一些數據。 這是我正在使用的代碼。寫入Excel文件時文件名或路徑不存在或被其他程序使用

using excel = Microsoft.Office.Interop.Excel; 
excel.Application xlapp; 
excel.Workbook xlworkbook; 
excel.Worksheet xlworksheet; 
object misvalue = System.Reflection.Missing.Value; 

xlapp = new excel.ApplicationClass(); 
xlworkbook = xlapp.Workbooks.Add(misvalue); 

xlworksheet = (excel.Worksheet)xlworkbook.Worksheets.get_Item(1); 
xlworksheet.Cells[1, 1] = "Muneeb Hassan Soomro"; 
xlworkbook.SaveAs("csharp-excelwrite.xls",excel.XlFileFormat.xlWorkbookNormal,misvalue,misvalue,misvalue,misvalue,excel.XlSaveAsAccessMode.xlExclusive,misvalue,misvalue,misvalue,misvalue,misvalue); 
//xlworkbook.SaveAs("csharp-Excel.xls", excel.XlFileFormat.xlWorkbookNormal); 
xlworkbook.Close(true, misvalue, misvalue); 
xlapp.Quit(); 

我在xlworkbook.saveas()調用中遇到異常。說:

的文件名或路徑不存在,或由其他程序

使用我做錯的是什麼?

+0

那麼,你有什麼異常或什麼? –

+0

你有沒有一個理由不只是做一個csv? – Meiyoki

+0

你忘了問一個問題。 –

回答

1

所以(這信息應該包含在問題中!)

文件名或路徑不存在,或由其他程序

的解決方案應該是簡單的使用:在SaveAs調用指定一個完整路徑,不僅是一個文件名。 Excel應該如何知道應該在哪個文件夾中保存文件?

+0

你是對的@cremon – Rezoan

+0

@cremor你是對的,我給了路徑,現在它正在製作一個excel文件! –

+0

你應該將它標記爲答案,以便其他具有相同問題的人可以找到它有幫助@Muneeb Hassan – Rezoan

1

嘗試細節

xlworkbook = xlapp.Workbooks.Add(misvalue); 

改變這一行這一行:

xlworkbook = xlapp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); 

和SaveAs:

workBook.SaveAs("csharp-excelwrite.xls", XlFileFormat.xlWorkbookNormal, Missing.Value, Missing.Value, Missing.Value, Missing.Value, XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 
+0

仍然有異常 文件名或路徑不存在或不被其他程序使用 –

+0

也許你的文件是由Excel打開的,在任務面板的進程選項卡中關閉所有打開的任務並更改此行:xlworkbook.Close(真實的,錯誤的,錯誤的); to:workBook.Close(true,「csharp-excelwrite.xls」,null); – jannagy02

+0

此解決方案正在運行 - 剛剛測試 – sqladmin

0

試試這個

object format = excel.XlFileFormat.xlWorkbookNormal; 
object sv = excel.XlSaveAsAccessMode.xlExclusive; 
object filename = "csharp-excelwrite.xls"; 

xlworkbook.SaveAs(ref filename,ref format, 
ref misvalue,ref misvalue,ref misvalue, 
ref misvalue,ref sv,ref misvalue,ref misvalue, 
ref misvalue,ref misvalue,ref misvalue); 

它是從另一個答案,我終於得到了異常文本您的意見一個爲我工作用Word應用程序,例如

object readOnly = isReadonly; 
object isVisible = true; 
object missing = WordConst.Missing; 
wordDoc = wordApp.Documents.Open(ref fileName, ref missing, 
          ref readOnly, ref missing, ref missing, ref missing, 
          ref missing, ref missing, ref missing, ref missing, 
          ref missing, ref isVisible, ref missing, ref missing, 
          ref missing, ref missing); 
+0

給出錯誤。 參數不應與ref關鍵字一起傳遞。 –

+0

好吧,它適用於我的應用程序中的MS Word – sqladmin

相關問題