Excel interop - как остановить число (сохраненный как текст) быть “оцененным”

Я задавался вопросом, столкнулся ли кто-либо со следующей проблемой и имел какие-либо идеи о том, как разрешить его: я экспортирую данные из приложения C# (.NET 3.5) к Excel (2003) через Interop. Один из столбцов хранит строковое значение, которое, кажется, является числовым. То есть это - число, которое начинается с 0, например, 000123

Мне нужно полное число, которое будет сохранено, поскольку это может быть порядковый номер или что-то подобное. Excel не увлечен этим так, я думал, что мог обойти его путем установки конечной ячейки на генерала. Когда я экспортирую в Excel, я нахожу 123 сохраненных вместо 000123.

Я пробежал приложение в отладке, и из списка наблюдения я нашел что (для "Диапазона располагаются":

range.NumberFormat = "General"`
this.Rows[iGridRow].Cells[iGridCol].Value = "000123" '/* (datagrid is not truncating it)*/
range.Value2 = 123.0

Это, кажется, становится обработанным как число даже при том, что я установил numberformat перед этой точкой:

range.NumberFormat = sNumberFormat;
range = (Range)sheet.Cells[iExcelRow, iExcelCol];
range.Value2 = this.Rows[iGridRow].Cells[iGridCol].Value.ToString();

Кто-либо может помочь?

5
задан Raj More 28 June 2010 в 11:43
поделиться

1 ответ

Добавьте одинарный апостроф ' перед числом. После этого Excel будет рассматривать число как строку.

4
ответ дан 14 December 2019 в 04:30
поделиться
Другие вопросы по тегам:

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