Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NPOI将xlsx文件弄得一团糟_C#_Xlsx_Npoi - Fatal编程技术网

C# NPOI将xlsx文件弄得一团糟

C# NPOI将xlsx文件弄得一团糟,c#,xlsx,npoi,C#,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 XSSFW

我有以下代码要写入现有的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);
使用XLS文件,效果非常好

请帮忙


关于,里纳尔多,我认为错误是一致的

ISheet ws = wb.GetSheet(Maanden[maand-1]);
您必须使用正确的excel文件类型对工作表对象进行类型转换

试一试


xlsx文件会发生什么情况?能否请您提供更多详细信息(如错误消息等)?你好,Simon,xlsx文件已损坏。在libre office中,如果没有要导入的对话框,则无法再加载它,而未触及的XLSX可以在libre office中加载。写入时没有错误消息。一切都顺利,除了我试图在libre office中加载它。希望有人知道答案。请尝试NPOI 2.1。NPOI 2.0中存在一些严重的错误,这些错误会损坏Excel文件。x@WordyFox在2.1.3.1版的NPOI中,我仍然会遇到被破坏的XLSX文件:当我手动解压和重新解压该文件时,MS Excel 2013非常高兴。
ISheet ws = wb.GetSheet(Maanden[maand-1]);
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]);
   }