0

我正在使用 C# 开发一个 Excel VSTO 项目。Excel 会将诸如“SEP-1”之类的代码自动格式化为一个日期,这不是应该发生的。有没有办法在代码中关闭电子表格上的这个功能?谢谢!

4

2 回答 2

0

您可以在文本值前加上单引号。

以下代码片段作为伪代码提供,以了解如何在 c# 中完成。

Excel.Range vsto_cell = vsto_worksheet.Cells[row_index + 1, col_index + 1];

if( ( ssg_cell.NumberFormatType == SpreadsheetGear.NumberFormatType.Date )
   || ( ssg_cell.NumberFormatType == SpreadsheetGear.NumberFormatType.DateTime )
   || ( ssg_cell.NumberFormatType == SpreadsheetGear.NumberFormatType.Time ) )
{
   vsto_cell.Value2 = ssg_cell.Text; //date should be recognized by Excel as a date
}
else if( ssg_cell.ValueType == SpreadsheetGear.ValueType.Text )
{
   vsto_cell.Value2 = "'" + ssg_cell.Text;
}
else
   vsto_cell.Value2 = ssg_cell.Value;
于 2013-09-25T10:05:08.417 回答
0

虽然似乎没有办法将其关闭,但我找到的最佳解决方案是将单元格的 NumberFormat 设置为 Text 以防止 Excel 自动格式化它。

于 2013-09-04T23:51:04.350 回答