C# “如何更新Excel单元格值”;2009.03“;而不是",;2009.3“;

C# “如何更新Excel单元格值”;2009.03“;而不是",;2009.3“;,c#,excel,C#,Excel,我正在将Excel工作表单元格值更新为2009.03,并将其更改为2009.3 我尝试了多种方法来解决这个问题,但服务器上的值总是改为“2009.3”,而不是“2009.03”。它在我的系统上工作,但在Win XP 2003服务器系统上不工作 我曾经将excel单元格的NumberFormat设置为“@”、“0.00”、“0.00” 甚至尝试在值之前连接“'”但结果不出现。 excel文件为2007格式(.xlsx)。 >我的代码是 Microsoft.Office.Interop.Excel.

我正在将Excel工作表单元格值更新为2009.03,并将其更改为2009.3

我尝试了多种方法来解决这个问题,但服务器上的值总是改为“2009.3”,而不是“2009.03”。它在我的系统上工作,但在Win XP 2003服务器系统上不工作

我曾经将excel单元格的NumberFormat设置为“@”、“0.00”、“0.00” 甚至尝试在值之前连接“'”但结果不出现。 excel文件为2007格式(.xlsx)。 >我的代码是

Microsoft.Office.Interop.Excel.Workbook WorkBook = null;
Microsoft.Office.Interop.Excel.Worksheet Sheet = null;
WorkBook = Utility.GetWorkbook2007(templateFileWPath);
Sheet = (Microsoft.Office.Interop.Excel.Worksheet)WorkBook.Worksheets[1];
Microsoft.Office.Interop.Excel.Range TPCellRange = (Microsoft.Office.Interop.Excel.Range)Sheet.Cells[this.GetRowIndex(Sheet, this.CellAddress), this.GetColumnIndex(Sheet, this.CellAddress)];
TPCellRange.set_Value(Microsoft.Office.Interop.Excel.XlRangeValueDataType.xlRangeValueDefault,"2009.03");
还是也试过

CellValueRange.NumberFormat = "@";
CellValueRange.set_Value(Microsoft.Office.Interop.Excel.XlRangeValueDataType.xlRangeValueDefault, "2009.03");

这似乎很奇怪。是否可以将数字解释为一个日期(以及格式化月份是否有前导零)?您是否在区域性中使用句点作为日期分隔符(或者更具体地说,在任一计算机设置为的区域性中)


另外,我不熟悉Excel API,但您使用的函数听起来更像是在设置范围,而不是在单元格中设置值。

如果执行以下操作会发生什么

TPCellRange.Formula = 2009.03;