【发布时间】:2015-07-09 11:47:47
【问题描述】:
我需要此代码 C# 用于文件 excel 2003 和 2007 版本。
我无法让这个 C# 代码在 csv 文件上转换 excel 文件 (xls)。
如果尝试使用 excel 文件扩展名 xlsx 一切正常,但如果尝试使用扩展名 xls 我在这一行有错误:
result.Tables[0].TableName.ToString();
我下面的代码,怎么了?
代码隐藏
FileUploadControl.SaveAs(Server.MapPath("/public/") + filename);
System.IO.FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read);
Excel.IExcelDataReader excelReader = Excel.ExcelReaderFactory.CreateOpenXmlReader(stream);
DataSet result = excelReader.AsDataSet();
excelReader.Close();
result.Tables[0].TableName.ToString();
string csvData = "";
int row_no = 0;
int ind = 0;
while (row_no < result.Tables[ind].Rows.Count)
{
for (int i = 0; i < result.Tables[ind].Columns.Count; i++)
{
csvData += result.Tables[ind].Rows[row_no][i].ToString() + ",";
}
row_no++;
csvData += "\n";
}
keys = GetUniqueKey(8).ToUpper();
output = System.Web.HttpContext.Current.Server.MapPath("/public/target_" + keys.ToString() + ".csv");
StreamWriter csv = new StreamWriter(@output, false);
csv.Write(csvData);
csv.Close();
【问题讨论】:
-
Excel 2003 的结构与 xlsx 不同。我认为您应该为 xls 文件找到另一种解决方案。
-
您是否考虑过使用 ACE OLEDB 提供程序来读取 xls/xlsx?
标签: c# excel export-to-csv