您好,我在 C# 中调用了文本到列函数,但结果并不像我想要的那样。
我的工作表的第一个单元格中有这些数据。
Guest;0;12/10/2010 03:46:34 PM;66082
如果我从 Excel 手动运行“文本到列”,我就明白了。
Guest 0 12/10/2010 15:46 66082
但是,如果我运行我的 C# 代码,我就会明白。
Guest 0 10/12/2010 15:46 66082
日期格式已从“DD/MM/YYYY”更改为“MM/DD/YYYY”
这是我的 C# 代码
((Range)ws.Cells[1,1]).EntireColumn.TextToColumns(
Type.Missing, Excel.XlTextParsingType.xlDelimited,
Excel.XlTextQualifier.xlTextQualifierNone, Type.Missing,
Type.Missing, true, Type.Missing,
Type.Missing, Type.Missing,
Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
我什至从 Excel 中录制了宏。
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1))
我唯一无法尝试的是 FieldInfo。不知道如何将其转换为 C#。谷歌也没有提供太多帮助。我有点怀疑它是 xlGeneralFormat。
有任何想法吗?谢谢。
object fieldInfo = new int[4,2] {{1,1},{2,1},{3,1},{4,1}};
好吧,我意识到问题不在于 FieldInfo,即使我忽略它它也运行正常。
问题就出在于此。
wb.Close(true, saveFileDialog1.FileName, Type.Missing);
我把它保存到另一个文件中。并发现原始文件的格式是我想要的正确格式。但新保存的文件格式错误。
我注释掉了关闭行,并手动保存。旧文件仍然是分隔形式,而新文件仍然是错误的格式。
显然,对象 FileName 仅在“saveFileDialog1.FileName”时才有效。换句话说,只有文件名相同时才有效。我尝试了 Type.Missing 和 @"C:\lalala.xls" 并且它没有向列发送文本。
我刚刚意识到“文本到列”中的格式甚至不起作用 -.-
好吧我放弃了。我要将 DateTime 转换为 Excel Serial DateTime。
尽管如此,这是一个有趣的问题。