2015-06-19 63 views
1

有一個文件需要用C#編寫,但是我不能,我已經檢查過文件的權限和只讀屬性,但是它們沒有打開。我想是這樣的:用C寫入受保護的Excel文件#

Excel.Application xlApp; 
Excel.Workbook xlWorkBook; 
Excel.Worksheet xlWorkSheet1; 
xlApp = new Excel.Application(); 
xlWorkBook = xlApp.Workbooks.Open(Directory.GetCurrentDirectory() + "\\template.xls"); 
xlWorkSheet1 = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 
xlWorkSheet1.Cells[1, 1] = "h1"; 
xlWorkBook.SaveAs(saveFileDialog1.FileName, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); 
xlApp.Quit(); 
releaseObject(xlWorkSheet1); 
releaseObject(xlWorkBook); 
releaseObject(xlApp); 

它的工作原理,當我使用的任何其他文件,但是當我用「template.xls」只是什麼都不做,也沒有錯誤,似乎工作不錯,但當我打開創建的文件時,沒有什麼新東西。我的問題是,我有沒有任何特權或規則?

+0

工作簿是否受到保護?它是否有密碼鎖定它被編輯? –

+0

你得到的具體例外是什麼。該文件是不可寫的(即另一個進程可能使文件保持打開並因此阻止其他進程的寫入訪問),或者Excel文件受保護(即DarkBobG詢問的是什麼)? – elgonzo

+0

有沒有例外,我已經擦除try..catch句子期待一個例外和沒有發生。它工作顯然很好,但沒有寫任何新東西。 –

回答

0

我發現一個更簡單的解決方案,我將文件的內容複製到一個新的文件,它的工作,我不知道爲什麼或如何,但它的工作。感謝發佈。