【问题标题】:Error in converting Excel data to CSV using C# code使用 C# 代码将 Excel 数据转换为 CSV 时出错
【发布时间】:2015-04-15 13:39:43
【问题描述】:

我正在使用this question 将 Excel 数据转换为 CSV。

   static void ConvertExcelToCsv(string excelFilePath, string csvOutputFile, int worksheetNumber = 1) 
    {
   var cnnStr = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;IMEX=1;HDR=NO\"", excelFilePath);
   var cnn = new OleDbConnection(cnnStr);
   var dt = new DataTable();
  try {
  cnn.Open();
       }   
     }

cnn.open() 行执行后,我会收到以下异常:

“外部表不是预期格式”

【问题讨论】:

  • 此代码正在尝试专门连接到 Excel 8.0 电子表格。您要连接的电子表格是什么格式的?
  • 我正在尝试将 excel 2010 转换为 csv
  • 您需要将cnnStr 中的Excel 8.0 更改为Excel 14.0。请注意,如果您加载的是xlsx 而不是xls 文件,则需要Excel 14.0 Xml
  • 当我用 Excel 14.0 更改 cnnStr - 它说 Excel 14.0 未在本地计算机上注册
  • 您需要安装this package。我知道它说它适用于 Office 2007,但它也适用于 2010。

标签: c# excel csv c#-3.0 converter


【解决方案1】:

链接中的问题是旧的,并且使用 Excel 8.0 电子表格版本,如 Octopoid 所述。您可以尝试使用 12.0 版本或找出您使用的版本:

var cnnStr = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};" + "Extended Properties='Excel 12.0 Xml;HDR=YES;'");



如果您无法使其正常工作,您可以随时使用库:>

库被称为“excellibrary”
这是链接:https://code.google.com/p/excellibrary/

使用起来非常简单。它在给定的链接中有一个 Wiki,因此您可以熟悉其用法。

奥古占

【讨论】:

    【解决方案2】:

    嘿嘿, 您可以使用 C# 打开 .xls 文件并将其另存为 .csv

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-14
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      • 2015-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多