C#编写文本序列号作为Excel文件中的date
我写了一个parsing器,它使用Spire.xls库从Excel工作表中获取一些信息,然后将信息写入另一个Excel文件。
我遇到了一个奇怪的问题。 出于某种原因,该程序正在采取序列号如
03-02281 03-02282 03-01975
并将它们写入Excel表格中
3/1/2281 3/1/2282 3/1/1975
这只发生在一些值上。
其他人如
30-04761 03-00613 03-00614
没有改变。
我检查了excel文件,这些字段被设置为text
格式。 所以他们要么原来的方式存储或Excel解释序列号为date。 其他可能性是,它不会在原始文件中发生,如果我手动input正确的值,文本不会自动更正/更改。
有没有人知道为什么会发生这种情况,我怎么可以告诉Excel把它们当作文本来处理?
我虽然在每个值的开头添加了一个'
to '
,但是这些必须被其他parsing器读取,所以这不是最方便的select。
编辑:这是我使用的一些代码,希望它可以给你们一个想法,我要去哪里错了。
这是添加所有值的代码:
Workbook workbook = new Workbook(); workbook.LoadFromFile(templateExcelFileUri); Worksheet sheet = workbook.Worksheets[0]; int ColumnIndex = 0; //for the datatable columns iteration int columnCounter = 1; //for the excel sheet columns iteration int ColumnsToAdd = 6; //(Seccion, seccion desc, marca, marca desc, **IdArticulo**, articulo desc) //get the data of the new column DataColumn DescriptionsDataColumn; //First, add the suggestions. for (; ColumnIndex < ColumnsToAdd; ColumnIndex++, columnCounter++) { sheet.InsertColumn(columnCounter); if(columnCounter==5) sheet.Columns[5].NumberFormat = "@";// the column with the serial numbers. DescriptionsDataColumn = AutomatController.DescriptionsTable.Columns[ColumnIndex]; //insert the data into the new column sheet.InsertDataColumn(DescriptionsDataColumn, true, 2, columnCounter); }
而对于引用,表中我添加的值:
public static void SetDescriptionsTable() { DescriptionsTable.Columns.Add("Seccion", typeof(string)); DescriptionsTable.Columns.Add("SeccionDescripcion", typeof(string)); DescriptionsTable.Columns.Add("Marca", typeof(string)); DescriptionsTable.Columns.Add("MarcaDescripcion", typeof(string)); DescriptionsTable.Columns.Add("IdArticulo", typeof(string)); //Serial numbers DescriptionsTable.Columns.Add("ArticuloDescripcion", typeof(string)); }
感谢编辑我的问题和标题的格式。 我在这里还是有点新的,我正在学习如何做得更好。
一些值不映射到date的原因是因为它们不符合MM-dyyyy格式的格式。 例如没有第30个月(30-02281)或第0天(03-01975)。
我认为你唯一需要做的就是设置目标列和单元格的格式,然后通过API设置它的值。 有时候,克隆一个列或一个单元默认的格式为“自动”,Excel会过于聪明。
如果您可以分享一些代码,社区可能会更准确地诊断问题。
在设置值之前,应将列格式设置为常规。