【问题标题】:Convert particular sheet in excel to csv将excel中的特定工作表转换为csv
【发布时间】:2017-08-21 21:07:42
【问题描述】:

如何使用 C# Interop 将特定工作表从 Excel 转换为 CSV?它是默认为第一张纸还是我可以指定?

这是我正在使用的代码:

 private void ConvertProgsToCSV()
    {
        Excel.Application app = new Excel.Application();
        Excel.Workbook wb = app.Workbooks.Open(txtFname.Text);
        wb.SaveAs(@"C:\Temp\output.csv", Excel.XlFileFormat.xlCSVWindows);
        wb.Close(false);
        app.Quit();
        Console.WriteLine("Done!");
    }

【问题讨论】:

  • 您可以选择选项卡,然后保存/转换为 CSV。它不必是第一个选项卡,但必须明确选择。到目前为止,您尝试过什么/有什么代码?
  • 如何选择标签?我在 _Workbook.SaveAs 类中没有看到任何方法。
  • 您需要Select 方法,它是Worksheet object 的一部分(代码中的wb.Worksheet)。然后正常保存!

标签: c# excel interop export-to-csv


【解决方案1】:

您必须按名称打开工作表并使用Select() 函数选择它:

xlSheet = (Excel.Worksheet)xlBook.Worksheets["Sheet1"];
xlSheet.Select(Type.Missing);
xlBook.SaveAs("C:\Filename.csv", Excel.XlFileFormat.xlCSV,Excel.XlSaveAsAccessMode.xlNoChange);

假设xlSheet 的类型为Interop.Excel.WorkSheet,而xlBook 的类型为Interop.Excel.Workbook

您可以参考此链接了解更多信息:

【讨论】:

  • 我在第一行有这个错误:“Non-invocable member 'Microsoft.Office.Interop,Excel._Workbook.Worksheets' 不能像方法一样使用。
  • 我有这个。使用 Excel = Microsoft.Office.Interop.Excel;
  • 你必须使用 [] 而不是 () ,我修复了答案
猜你喜欢
  • 1970-01-01
  • 2020-08-30
  • 1970-01-01
  • 2019-10-26
  • 2019-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多