如何告诉Range.NumberFormat只是把数据原样?

我在这里做一些简单的Excel自动化,并在我的代码周围的地方,我有一个开关块,检查CellType(我build立的自定义枚举),并基于这使得一些格式。
这是我的代码:

switch (celltype) { case CellType.String: cellRangeFormat = cellrange.get_Range(cell, cell); cellRangeFormat.NumberFormat = ????; break; case CellType.Numeric: cellRangeFormat = cellrange.get_Range(cell, cell); cellRangeFormat.NumberFormat = ";0_);[Red](0)"; break; case CellType.Percentage: cellRangeFormat = cellrange.get_Range(cell, cell); cellRangeFormat.NumberFormat = "#,0.00 %"; break; case CellType.Decimal: cellRangeFormat = cellrange.get_Range(cell, cell); //cellrangeformat.NumberFormat = "#,0.00"; cellRangeFormat.NumberFormat = "#,##0.00_);[Red](#,##0.00)"; break; default: break; } 

现在的问题是,在某些列中的值是“000”,虽然我指定CellType为string,Excel将格式化值并显示单元格为空。 如果我select单元格,我会看到它的值为0。 我希望excel停止格式化我的值,如果他们是string,只是粘贴它们。
我怎样才能做到这一点?

"@" 。 您可能需要设置值之前设置它。

这也将它设置为一个string(所以你不能对公式中的单元格进行算术运算,它将被左alignment等)。