Я создал решение (см. Другой мой вопрос), которое выполняет запрос SQL, упорядочивает по счетам и создает электронную таблицу Excel для каждого счета.У меня проблема в том, что я использую это как соединение:
Excel_OLE_Con.ConnectionString = connstring;
Excel_OLE_Con.Open();
Excel_OLE_Cmd.Connection = Excel_OLE_Con;
Excel_OLE_Cmd.CommandText = "Create table " + SheetName + " (" + TableColumns + ")";
Excel_OLE_Cmd.ExecuteNonQuery();
Я не нашел способа использовать Excel_OLE_con, чтобы делать то, что я хочу, поэтому вместо этого я использую Microsoft.Office.Interop.Excel
.
Я пытался получить:
Excel_OLE_Cmd.Close();
в конце и затем получить это:
Excel.Application x1Appl = new Excel.Application();
Excel.Workbook x1WorkBook = x1Appl.Workbooks.Open(FolderPath + ExcelFileName + ".XLSX");
Excel._Worksheet x1WorkSheet = x1WorkBook.Sheets[1];
x1WorkSheet.Range["F2", "F2000"].NumberFormat = "#,###.00 €";
x1Appl.Save();
, затем снова открыть соединение и позволить циклу, который записывает в него, произойтикак я прочитал, я должен отформатировать его перед вводом данных в Excel.Это не сработало.
Я пытался поместить его в конец цикла после закрытия соединения (поскольку приложение Excel открывает новое "соединение".
Но сейчас я получаюэта ошибка:
System.Runtime.InteropServices.COMException (0x800A03EC): Исключение из HRESULT: 0x800A03EC в Microsoft.Office.Interop.Excel.ApplicationClass.Save (имя файла объекта) в ST_6704c764a.fa.()
Любые идеи о том, как обойти это?
Есть ли другие способы настройки формата? Я подумал, что это поможет, так как мне также нужно добавить формулы в определенные ячейки вэтот лист.