如何使用interop.excel将长数字作为文本写入

时间:2012-10-10 00:03:06

标签: c# excel

我正在使用interop.excel dll并创建一个Excel文件。我在写长文本时遇到问题。

以下是我正在使用的代码。我可以使用撇号,但如果你查看公式栏,你可以看到格式化单元格。

在没有看到公式栏中的格式化值(使用numberformat)的情况下,还有其他方法可以将长数字写入Excel电子表格吗?

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 = "#####"; 

2 个答案:

答案 0 :(得分:0)

如果您想在一行中执行此操作,则可以使用Text function

示例:

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

但这可能不是你想要的,因为这会将数字存储为文本并在公式栏中显示公式。在这种情况下,就像user194076建议的那样,您可以使用.NumberFormat = "@";.NumberFormat = "#";如果您不希望它以科学记数法显示。

答案 1 :(得分:0)

你可以使用NumberFormat和' @'或者'#' 例如:

Range r= worksheet.Cells;
r.NumberFormat = "@";