【问题标题】:How to open CSV file in Excel with correct columns如何在 Excel 中使用正确的列打开 CSV 文件
【发布时间】:2019-05-21 07:28:45
【问题描述】:

我尝试使用 Microsoft.Office.Interop.Excel 库通过 Excel 打开一个 CSV 文件。 它工作正常,但所有文本都在一个带有分隔符“;”的列中。 举个例子:

Id;Name;Zeit
1;Name1;21.05.2019 09:21:04
3;Name2;21.05.2019 09:21:04

这是我用来在 Excel 中打开 CSV 的代码:

object missing = Type.Missing;
Excel.Application ex = new Excel.Application();
Excel.Workbook wbs = ex.Workbooks.Open(@"c:\users\langenwa\desktop\File.csv", 0, false, Excel.XlFileFormat.xlCSV, "", "", false, Excel.XlPlatform.xlWindows, ";", true, false, 0, true, false, false);
Excel.Worksheet mSheet = (Excel.Worksheet)wbs.Worksheets[1];
ex.Visible = true;

感谢您的帮助,抱歉我的英语不好。

【问题讨论】:

  • Excel 互操作在这里真的是强制性的吗?对于像这样的简单 csv,您可以使用 CSV Helper 或任何处理 CSV 的真实库。编码会更容易。而且您将能够在没有 Excel 的服务器上进行部署(服务器上的许可证很昂贵)。
  • 您为什么使用 Excel 互操作?您想自动化用户的 Excel 实例吗?没有什么理由使用 Excel。像 CsvHelper 这样的库可以使用任何分隔符读取 CSV,甚至可以读取带有注释行等“不幸”功能的 CSV。像 Epplus 这样的库可以在不调用 Excel 本身的情况下生成真正的 Excel 文件。
  • Interop Excell 可能非常慢。你能描述一下上下文吗?你是从 csv 导入数据吗?您需要生成输出吗?这个输出的格式是什么?您是否尝试让在 Excel 中打开文件的用户在查找文件或设置分隔符和列类型时遇到问题?
  • 感谢您的快速解答!我想在 Excel 中打开该 csv,因为我想添加一些过滤器和字体设置...

标签: c# excel csv


【解决方案1】:

csv 文件在我的 excel 中运行良好,可能您的系统有不同的默认分隔符。您可以覆盖它。

尝试将其添加到 csv 文件的顶部:

sep=;
  • 请注意,这仅在 excel 中打开 csv 时有效

查看这些答案了解更多详情:https://superuser.com/questions/606272/how-to-get-excel-to-interpret-the-comma-as-a-default-delimiter-in-csv-files

【讨论】:

    猜你喜欢
    • 2016-06-14
    • 1970-01-01
    • 2023-04-09
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 2013-05-12
    • 1970-01-01
    相关资源
    最近更新 更多