0

我想在 C# 中读取 excel 文件。我不想在阅读时使用以下内容:

  1. 第三方 dll(我的客户端不允许我使用第三方 dll)
  2. SDK(同上原因不允许下载)
  3. 不允许在目标服务器中使用 interop/oledb,因为没有安装办公室。
  4. 开放XML

注意:我正在使用 vs 2005。

请给我其他建议>>

提前致谢, 桑杰

4

1 回答 1

2

正如我在评论中所说,使用 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()); 
}
于 2013-08-05T08:51:54.973 回答