NPOI создает беспорядок в файлах xlsx
У меня есть следующий код для записи в существующий файл 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 это прекрасно работает.
Пожалуйста помоги.
С уважением, Ринальдо
1 ответ
Что я думаю, что ошибка в линии
ISheet ws = wb.GetSheet(Maanden[maand-1]);
вам придется типизировать объект листа с правильным типом файла 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]);
}