2013-06-23 98 views
1

我有下面的代碼寫入到一個現有的XLSX文件NPOI使得XLSX文件亂七八糟

FileStream file = new FileStream(bestand, FileMode.Open, FileAccess.ReadWrite); 
string ext = Path.GetExtension(bestand).ToLower(); 

if (ext == ".xls") 
{ 
    wb = new HSSFWorkbook(file); 
} 
else if (ext == ".xlsx") 
    wb = new XSSFWorkbook(file); 

ISheet ws = wb.GetSheet(Maanden[maand-1]); 

ws.GetRow(colum).GetCell(rij++).SetCellValue(huidigedatum); 
ws.GetRow(colum).GetCell(rij++).SetCellValue(Datarow["Factuurnummer"].ToString()); 
ws.GetRow(colum).GetCell(rij++).SetCellValue(Datarow["Omschrijving"].ToString()); 
ws.GetRow(colum++).GetCell(tbBank-1).SetCellValue((double)totaal); 

WriteToFile(bestand); 
private void WriteToFile(string bestand) 
{ 
    //Write the stream data of workbook to the root directory 
    FileStream file = new FileStream(bestand, FileMode.Create); 
    wb.Write(file); 
    pBar.PerformStep(); 
    file.Close(); 
} 

隨着它的偉大工程的XLS文件。

請幫忙。

問候,里納爾多

+0

xlsx文件會發生什麼情況?你能否提供更多詳細信息(即錯誤信息等)? –

+0

嗨西蒙,xlsx文件已損壞。無法加載它,而不會導入對話框,因此在libre office中,而未觸摸的XLSX可以在libre office中加載。寫作時沒有錯誤信息。一切都沒有問題,當我嘗試在自由職業辦公室加載時,免除。希望有人知道答案。問候Rinaldo –

+0

請嘗試NPOI 2.1。有一些關鍵的錯誤,這些錯誤會損壞在NPOI 2.0.x的 –

回答

0

什麼,我認爲是錯誤是本着

ISheet ws = wb.GetSheet(Maanden[maand-1]); 

你必須typecaste工作表對象與正確的excel文件類型

嘗試

ISheet ws; 
    if (ext == ".xls") 
    { 
    wb = new HSSFWorkbook(file); 
    ws = (HSSFSheet)wb.GetSheet(Maanden[maand-1]); 
    } 
    else if (ext == ".xlsx") 
    { 
     wb = new XSSFWorkbook(file); 
     ws = (XSSFSheet)wb.GetSheet(Maanden[maand-1]); 
    } 
相關問題