我正在使用C#开发Excel VSTO项目。 Excel会将“SEP-1”之类的代码自动格式化为日期,这不是应该发生的事情。有没有办法在代码中的电子表格上关闭此功能?谢谢!
答案 0 :(得分:0)
虽然似乎没有办法将其关闭,但我找到的最佳解决方案是将单元格的NumberFormat设置为Text以防止Excel自动格式化它。
答案 1 :(得分: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;