使用C#读取excel文件,而不使用第三方dll / oledb / interop / sdk

时间:2013-08-05 08:22:25

标签: c# excel visual-studio-2005

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

  1. ThirdParty dll(我的客户不允许我使用第三方dll)
  2. SDK(与上述原因相同,不允许下载)
  3. 不允许在目标服务器中使用interop / oledb,没有安装办公室。
  4. OPENXML
  5. 注意:使用vs 2005.

    请建议我其他任何>>

    提前致谢, 桑杰

1 个答案:

答案 0 :(得分:1)

正如我在评论中所说,使用OleDb与Interop不同 OleDb是.NET框架的一部分,如果您的客户使用您的应用程序,它已经安装并运行了Framework。因此,这个示例可以帮助证明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()); 
}