C # Excel меняет тип ячейки - PullRequest
0 голосов
/ 07 декабря 2018

Я создал решение (см. Другой мой вопрос), которое выполняет запрос 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.()

Любые идеи о том, как обойти это?

Есть ли другие способы настройки формата? Я подумал, что это поможет, так как мне также нужно добавить формулы в определенные ячейки вэтот лист.

1 Ответ

0 голосов
/ 07 декабря 2018

Я не уверен, почему ваш числовой формат не работает, но вот что работает для меня:

Range UnitCostCells = workSheet.get_Range("G1", "G1");
UnitCostCells.EntireColumn.NumberFormat = "#,##0.0000";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...