我想在 C# 中读取 excel 文件。我不想在阅读时使用以下内容:
- 第三方 dll(我的客户端不允许我使用第三方 dll)
- SDK(同上原因不允许下载)
- 不允许在目标服务器中使用 interop/oledb,因为没有安装办公室。
- 开放XML
注意:我正在使用 vs 2005。
请给我其他建议>>
提前致谢, 桑杰
我想在 C# 中读取 excel 文件。我不想在阅读时使用以下内容:
注意:我正在使用 vs 2005。
请给我其他建议>>
提前致谢, 桑杰
正如我在评论中所说,使用 OleDb 与 Interop 不同。
OleDb 是 NET 框架的一部分,如果您的客户使用您的应用程序,它已经安装并运行了框架。所以这个例子可能有助于证明 OleDb 可以在没有安装 Office 的情况下读取您的目标 excel 文件。
在此示例中,我有一个简单的工作表,其中包含三列(第一行中的标题)第一列和第二列是简单的文本列,而第三列包含数值
try
{
string con = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\temp\test.xls;Extended Properties='Excel 8.0;HDR=Yes;'";
using(OleDbConnection connectin = new System.Data.OleDb.OleDbConnection(con));
{
connectin.Open();
OleDbCommand command = new System.Data.OleDb.OleDbCommand("select * from [Sheet1$]", connectin);
using(System.Data.OleDb.OleDbDataReader dr = command.ExecuteReader())
{
while (dr.Read)
{
if(dr.HasRows)
{
Console.Write(dr[0].ToString() + " ");
Console.Write(dr[1].ToString() + " ");
Console.WriteLine(Convert.ToInt32(dr[2]));
}
}
}
}
}
catch(Exception ex)
{
Console.WriteLine(ex.ToString());
}