Как писать длинные числа в виде текста с помощью interop.excel

Я использую interop.excel dll и создаю файл Excel. У меня возникают проблемы при написании длинных чисел в виде текста.

Ниже приведен код, который я использую. Я могу использовать апостроф, но если вы посмотрите в строку формул, вы увидите, что ячейка отформатирована.

Есть ли другой способ записи длинных чисел в электронную таблицу Excel, не видя отформатированное значение в строке формул (используя numberformat)?

worksheet.Cells[i, j] = "'" + dr[p];

//var startCell = (Excel.Range)worksheet.Cells[i, j]; 

//var endCell = (Excel.Range)worksheet.Cells[i, j]; 

//worksheetRange = worksheet.get_Range(startCell, endCell); 

//worksheetRange.NumberFormat = "#####"; 

person user1718824    schedule 10.10.2012    source источник
comment
Вы пытались использовать cell.NumberFormat = @?   -  person user194076    schedule 10.10.2012
comment
Спасибо, это сработало. Я не использовал числовой формат с правильным синтаксисом   -  person user1718824    schedule 10.10.2012


Ответы (2)


Если вы хотите сделать это в одну строку, вы можете использовать Текстовая функция.

Пример:

worksheets.Cells[i, j] = "=Text(" + dr[p] + ", \"#\"";

Но это, вероятно, не то, что вы ищете, потому что это сохранит число в виде текста и отобразит формулу в строке формул. В этом случае, как предложил пользователь194076, вы можете использовать .NumberFormat = "@"; или .NumberFormat = "#";, если вы не хотите, чтобы это отображалось в экспоненциальном представлении.

person Daniel    schedule 10.10.2012

Вы можете использовать NumberFormat с '@' или '#' Пример:

Range r= worksheet.Cells;
r.NumberFormat = "@";
person Prasad    schedule 24.01.2017