是否有免费或开源的库可以直接从c#程序中读取Excel文件(.xls) ?
它不需要太花哨,只需选择一个工作表并将数据作为字符串读取即可。到目前为止,我一直在使用Excel的Export to Unicode文本功能,并解析生成的(以制表符分隔的)文件,但我想消除手动步骤。
是否有免费或开源的库可以直接从c#程序中读取Excel文件(.xls) ?
它不需要太花哨,只需选择一个工作表并将数据作为字符串读取即可。到目前为止,我一直在使用Excel的Export to Unicode文本功能,并解析生成的(以制表符分隔的)文件,但我想消除手动步骤。
当前回答
Koogra是一个用c#编写的开源组件,可以读写Excel文件。
其他回答
您可以编写一个excel电子表格,加载给定的excel电子表格并将其保存为CSV(而不是手动操作)。
然后你可以用c#自动化它。
一旦它在csv中,c#程序就可以理解它。
(此外,如果有人让你用excel编程,最好假装你不知道怎么做)
(编辑:啊,是的,rob和Ryan都是对的)
刚刚做了一个需要管理一些excel文件的快速演示项目。GemBox软件的. net组件足以满足我的需求。它有一个免费版本,但有一些限制。
http://www.gemboxsoftware.com/GBSpreadsheet.htm
SpreadsheetGear for . net是一个Excel兼容的电子表格组件。您可以在我们产品页面的右侧看到我们的客户对性能的评价。您可以自己尝试使用免费的、功能齐全的评估。
这是我在Excel 2003中使用的:
Dictionary<string, string> props = new Dictionary<string, string>();
props["Provider"] = "Microsoft.Jet.OLEDB.4.0";
props["Data Source"] = repFile;
props["Extended Properties"] = "Excel 8.0";
StringBuilder sb = new StringBuilder();
foreach (KeyValuePair<string, string> prop in props)
{
sb.Append(prop.Key);
sb.Append('=');
sb.Append(prop.Value);
sb.Append(';');
}
string properties = sb.ToString();
using (OleDbConnection conn = new OleDbConnection(properties))
{
conn.Open();
DataSet ds = new DataSet();
string columns = String.Join(",", columnNames.ToArray());
using (OleDbDataAdapter da = new OleDbDataAdapter(
"SELECT " + columns + " FROM [" + worksheet + "$]", conn))
{
DataTable dt = new DataTable(tableName);
da.Fill(dt);
ds.Tables.Add(dt);
}
}
我知道人们为了这个目的一直在做一个Excel“扩展”。 你或多或少在Excel中创建一个按钮,上面写着“导出到程序X”,然后以程序可以读取的格式导出并发送数据。
http://msdn.microsoft.com/en-us/library/ms186213.aspx应该是一个很好的开始。
祝你好运