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