Отформатируйте столбец Excel (или ячейка) как текст в C#?

Я теряю начальные нули, когда я копирую значения от таблицы данных до листа Excel. Поэтому, вероятно, Excel рассматривает значения как число вместо текста.

Я создал рабочий лист в C#, и я копирую значения как так:

myWorksheet.Cells[i + 2, j] = dtCustomers.Rows[i][j - 1].ToString();

Как я форматирую целый столбец или каждую ячейку как текст? Связанный вопрос, как бросить myWorksheet.Cells[i + 2, j] показать свойство стиля в Intellisense?

34
задан stema 28 September 2011 в 13:26
поделиться

1 ответ

Ниже некоторый код для форматирования столбцов A и C как текст в SpreadsheetGear для.NET , который имеет API, который подобен Excel - за исключением того, что SpreadsheetGear часто более со строгим контролем типов. Не должно быть слишком трудно выяснить, как преобразовать это для работы с Excel / COM:

IWorkbook workbook = Factory.GetWorkbook();
IRange cells = workbook.Worksheets[0].Cells;
// Format column A as text.
cells["A:A"].NumberFormat = "@";
// Set A2 to text with a leading '0'.
cells["A2"].Value = "01234567890123456789";
// Format column C as text (SpreadsheetGear uses 0 based indexes - Excel uses 1 based indexes).
cells[0, 2].EntireColumn.NumberFormat = "@";
// Set C3 to text with a leading '0'.
cells[2, 2].Value = "01234567890123456789";
workbook.SaveAs(@"c:\tmp\TextFormat.xlsx", FileFormat.OpenXMLWorkbook);

Правовая оговорка: Я владею SpreadsheetGear LLC

40
ответ дан 27 November 2019 в 16:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: