zoukankan      html  css  js  c++  java
  • excel导入 总结

            public static string GetConnectionString(string FileName)
            {
                if (FileName.ToLower().EndsWith("xls"))
                {
                    return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties='Excel 8.0;HDR=No;IMEX=1;';Persist Security Info=False";//2003
                }
                else if (FileName.ToLower().EndsWith("xlsx"))
                {
                    return "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName + ";Extended Properties='Excel 12.0;HDR=No;IMEX=1;';Persist Security Info=False";//2007
                }
                else
                    return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties='Text;FMT=Delimited;HDR=YES;IMEX=1;'";//读取文本文档(.csv,.txr等) 此处filename是指文本文件所在路径,不包含文件名
            }
    
    /// <summary>
            /// 读取文件数据
            /// </summary>
            /// <param name="FileName">读取excel时,此参数是文件全路径(带文件名,eg:E:\data\abc.xls),读取文本文件时,此参数是文件路径(不带文件名 eg:E:\data)</param>
            /// <param name="SheetName">读取excel时,此参数是sheet名 eg:sheet1,读取文本文件时,此参数是文件名 eg:abc.cvs</param>
            /// <returns></returns>
            public static DataTable ToDataTable(string FileName, string SheetName)
            {
                OleDbDataAdapter adp = new OleDbDataAdapter("select * from [" + SheetName + "]",
                    GetConnectionString(FileName));
                DataTable dt = new DataTable();
                adp.Fill(dt);
                return dt;
            }
    

      以上是主要代码

    需要注意的地方:

    1,03和07的链接字符串不同,写错会报错:外部表不是预期的格式  

    2,cvs和txt的链接字符串和excel不同,它是指向目录的而不是文件,文件名需要在sql语句中作为sheet名给出

    3,导入 cvs或txt时,每列的数据格式必须相同,否则会丢失数据。最好将所有非字符串格式的数据加上双引号

    4,sheet名,必须在后边加上 $ 如:Sheet1$ 否则 :Microsoft Office Access 数据库引擎找不到对象“Sheet1”。请确定该对象存在,并正确拼写其名称和路径名。

  • 相关阅读:
    VSS部署手册
    正则表达式学习(二)
    完全卸载oracle11g步骤
    c#中 命令copy 已退出,返回值为1
    Windows 64位下装Oracle 11g,PLSQL Developer的配置问题,数据库处显示为空白的解决方案
    ora01033和ora12560错误的解决方案
    C#DLL加密保护
    ocslive.conf
    ASP.NET中文乱码问题的解决
    Creating a very simple autorestore USB stick clonezilla
  • 原文地址:https://www.cnblogs.com/yyjj/p/2383951.html
Copyright © 2011-2022 走看看