C# 程序读取Excel数据

    技术2022-05-19  16

     string mystring = "Provider=Microsoft.Jet.Oledb.4.0;Data Source='" + fileName +"'" + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'"; //读取Excel文件,填充到oledb的数据变量中 OleDbConnection cnnxls = new OleDbConnection(mystring); cnnxls.Open(); OleDbDataAdapter myDa = new OleDbDataAdapter("select * from [计算公式$] ", cnnxls); DataSet myDs = new DataSet(); myDa.Fill(myDs); //读取放在myDs中的Excel数据 if (myDs.Tables[0].Rows.Count > 0) { for (int i = 0; i < myDs.Tables[0].Rows.Count; i++) { string test= myDs.Tables[0].Rows[i].ItemArray[8].ToString(); } }

     

            这种方式经常会漏读一些数据。因为读取Excel时,Excel单元格格式也不同,dataset不能正确的分配列表的类型,

    在Excel中选择要传入的列,然后选择工具栏上的数据——分列,点击下一步,下一步,出现一个转换类型窗口,在里

    面选择转为文本,然后完成就Ok了。 再使用程序读取就可以正常读取出来了。这样读取Excel数据时需要把读取的Excel关闭

    否则读取的结果会有些错误。

     

    C# 读取Excel office 2007需要用以下字符串

          if (fileName.Contains(".xlsx"))                {                      mystring = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended     Properties='Excel 12.0;HDR=Yes'";                }

     但是需要安装Offcie2007正式版,安装兼容包不可读取2007版。


    最新回复(0)