C # считывает данные из результатов файла excel в ###

Я читаю данные из файла excel с помощью этого кода

Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet; Microsoft.Office.Interop.Excel.Range range; int rCnt = 0; int cCnt = 0; string[,] data; xlWorkSheet = (Worksheet)wb.Worksheets.get_Item(sheetId); range = xlWorkSheet.UsedRange; data = new string[range.Rows.Count, range.Columns.Count]; for (rCnt = 1; rCnt <= range.Rows.Count; rCnt++) { for (cCnt = 1; cCnt <= range.Columns.Count; cCnt++) { data[rCnt - 1, cCnt - 1] = (string) (range.Cells[rCnt, cCnt] as Range).Text; } } 

Теперь я иногда запускаюсь в ячейки, где значение в excel отображается как ###, потому что пространство столбцов недостаточно велико, чтобы отображать число. Конечно, я могу видеть правильное значение в строке сверху, когда я нажимаю на ячейку, но в моей программе я получаю значение ### как вместо правильного числа.

Любой совет здесь?

Попробуйте использовать свойство Range.Value вместо Text .

Поэтому вместо

 (range.Cells[rCnt, cCnt] as Range).Text; 

вы напишете

 (range.Cells[rCnt, cCnt] as Range).Value; 

Я видел многочисленные примеры, когда диапазон читается с использованием свойства Value OR Value2.
Не могли бы вы попробовать это?

 data[rCnt - 1, cCnt - 1] = (string)(range.Cells[rCnt, cCnt] as Range).Value.ToString(); 

Свойство Value2 похоже на значение, но не хорошо переводит столбцы Date, поэтому лучше использовать значение, если у вас есть столбцы даты в вашем файле Excel. См. Здесь статью о различиях между Value и Value2

use (string) (range.Cells [rCnt, cCnt] как Range). Значение в качестве значения вернет фактическое значение ячейки. Текст вернет то, что вы на самом деле видите в электронной таблице.

  • Добавьте все данные в диапазон, затем проверьте, существует ли он
  • VBA: Как я могу обойти медленность, вызванную публикацией в htm-файле?
  • Установка диапазона Excel с помощью массива с использованием Python и comtypes?
  • Excel VBA Clear Formula и сохранить перезаписанную стоимость
  • конвертировать внешний адрес ячейки в диапазон в vba
  • Excel Countif для всех предыдущих строк застопоривается
  • Excel Macro - Как скопировать ВСЕ данные из 12 книг на пустой пробел / Запрос диапазона
  • Поиск и удаление строк Excel на основе диапазона значений
  • Диапазон клеток SUM после выполнения VLOOKUP на каждую ячейку
  • Динамический именованный диапазон изображения Picture Link Link
  • Excel: сумма значений, отличных от тройки в диапазоне
  • Давайте будем гением компьютера.