Я использую Microsoft.Office.Interop.Excel в winform, где я читаю один файл excel, обрабатывая данные и выводя новый файл excel. Однако у меня возникают проблемы с записью в ячейки - в частности, для добавления заголовков столбцов. Вот код:C# COM Interop: Запись в ячейку в листе Excel
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Worksheet ws = (Worksheet)wb.Worksheets[1];
for (int i = 0; i < dt.Columns.Count; i++)
{
for (int j = 0; j < dt.Rows.Count; j++)
{
ws.Cells[j + 1, i] = dt.Rows[j][i].ToString();
}
}
ws.Cells[0, 0] = "Ticket Number";
ws.Cells[0, 1] = "Transit";
ws.Cells[0, 2] = "Outage Start Date";
ws.Cells[0, 3] = "Outage End Date";
ws.Cells[0, 4] = "Business Impact";
wb.Worksheets.Add(ws);
где «dt» - это мой DataTable. Вложенный цикл for не генерирует ошибку времени выполнения, а код, следующий за ним. Ошибка просто говорит: COM Exception был необработанным, Исключение из HRESULT: 0x800A03EC.
Любые советы приветствуются.
С уважением.
Я только что обнаружил, что если я прокомментирую оскорбительные строки, программа запускает и выводит файл. Однако, когда я пытаюсь открыть его, он немедленно закрывается, и я не могу удалить его впоследствии, потому что Windows утверждает, что Excel его использует, хотя я не могу найти приложение Excel в Диспетчере задач. – Kevin
Когда вы говорите в диспетчере задач, вы проверили вкладку процессов и вкладку приложений? Легко закончить с запасными процессами excel.exe, висящими вокруг. Вы закрываете книгу в своем объекте приложения excel или, по крайней мере, закрываете приложение приложения Excel? – Rup
Я смотрел только на вкладке «Приложение». – Kevin