【发布时间】:2016-05-26 14:44:37
【问题描述】:
我想打开一个 excel 文件并将其保存为 csv 文件。谷歌搜索不走运。 我需要 C 语言代码来做到这一点。
感谢您的帮助。
【问题讨论】:
我想打开一个 excel 文件并将其保存为 csv 文件。谷歌搜索不走运。 我需要 C 语言代码来做到这一点。
感谢您的帮助。
【问题讨论】:
如果您愿意使用 Excel 互操作:
Excel.Application app = new Excel.Application();
Excel.Workbook wb = app.Workbooks.Open(@"c:\temp\testtable.xlsx");
wb.SaveAs(@"C:\Temp\output.csv", Excel.XlFileFormat.xlCSVWindows);
wb.Close(false);
app.Quit();
Console.WriteLine("Done!");
【讨论】:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Office.Interop.Excel;
using System.IO;
namespace TestConsoleApp
{
class Program
{
static void Main(string[] args)
{
String fromFile = @"C:\ExlTest\Test.xlsx";
String toFile = @"C:\ExlTest\csv\Test.csv";
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook wb = app.Workbooks.Open(fromFile, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
// this does not throw exception if file doesnt exist
File.Delete(toFile);
wb.SaveAs(toFile, Microsoft.Office.Interop.Excel.XlFileFormat.xlCSVWindows, Type.Missing, Type.Missing, false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Microsoft.Office.Interop.Excel.XlSaveConflictResolution.xlLocalSessionChanges, false, Type.Missing, Type.Missing, Type.Missing);
wb.Close(false,Type.Missing,Type.Missing);
app.Quit();
}
}
}
【讨论】:
File.Delete(toFile); 在 csv 文件不存在时会抛出错误
您可以使用 Visual Studio Tools for Office 或 ADO.NET 来执行此操作。
为了更好的兼容性,我建议你使用第二个:看看一些教程,比如David Hayden's 一个来学习如何使用它。
要创建 CSV 文件,您只需读取 Excel 数据并将结果写入使用Wikipedia 中编写的结构的文件。
【讨论】: