Я хочу с помощью консольного приложения C # открыть существующий файл Excel и добавить в него содержимое. НПОИ 2.1.1.0
Мой первый подход заключался в том, чтобы просто добавить значение к последней цифре ячейки, которую я решил, что это решит мою другую проблему.
Это будет правильно читать файл с новым содержимым, но не сохранит его.
Выход:
«Нет доступа к закрытому файлу.».
HSSFWorkbook hssfwb;
using (FileStream file = new FileStream(@"c:\testfile.xls", FileMode.Open, FileAccess.ReadWrite))
{
hssfwb = new HSSFWorkbook(file);
ISheet sheet = hssfwb.GetSheetAt(0);
IRow row = sheet.GetRow(0);
sheet.CreateRow(row.LastCellNum);
ICell cell = row.CreateCell(row.LastCellNum);
cell.SetCellValue("test");
for (int i = 0; i < row.LastCellNum; i++)
{
Console.WriteLine(row.GetCell(i));
}
hssfwb.Write(file);
file.Close();
}
Я попытался добавить следующее, но в результате остался пустой файл, который не открывается.
MemoryStream mstream = new MemoryStream();
hssfwb.Write(mstream);
byte[] bytes = new byte[mstream.Length];
mstream.Read(bytes, 0, (int)mstream.Length);
file.Write(bytes, 0, bytes.Length);
file.Close();
mstream.Close();
Я также попытался поместить только hssfwb в область using, изменил режим файла на Append / openorcreate / truncate, добавил, если проверка записи без каких-либо результатов.
Однако одним из решений было бы прочитать файл, преобразовать его в таблицу данных, создать новый файл Excel и заполнить его данными.
Что я делаю неправильно? Может кто-нибудь пролить некоторый свет на это? Я тщетно просматривал пакет Npoi Example.