gpt4 book ai didi

C# Excel 文本到列问题

转载 作者:行者123 更新时间:2023-11-30 17:19:22 26 4
gpt4 key购买 nike

您好,我已经在 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"但它没有向列发送文本。

我刚刚意识到 Text to column 中的格式甚至不起作用 -.-好吧,我放弃了。我要将 DateTime 转换为 Excel Serial DateTime。尽管如此,这是一个有趣的问题。

最佳答案

我的书(使用 VBA 和 .NET 编写 Excel,Webb 和 Saunders)简单地将 FieldInfo 描述为“描述文本中字段数据类型的数组”。所以看起来确实应该有解决方案,但宏不包含任何日期格式。

MSDN 引用文档更有用:

http://msdn.microsoft.com/en-us/library/04b02wh9%28v=VS.80%29.aspx

是的,它是一个数组:实际上是一个值对数组(因此是宏中数组的数组)。第一个值是列号。第二个值是 XlColumnDataType 常量。定义在这里:

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.xlcolumndatatype.aspx

注意日期格式列表。看起来您需要第三列的 xlDMYFormat 或 xlMDYFormat 值?

如果您知道哪些列包含日期(如上假设),那么您也可以在之后显式设置格式。尽管它确实将它变成了一个两阶段的过程,但它节省了数组的麻烦。

关于C# Excel 文本到列问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4945621/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com