将Excel导入到DataTable (用ODBC方法连接)

简介: ///         /// 将Excel导入到DataTable (用ODBC方法连接)(LiPu)         ///         /// excel 路径         ///         ///         public DataTable Excel...
/// <summary>
        /// 将Excel导入到DataTable (用ODBC方法连接)(LiPu)
        /// </summary>
        /// <param name="excelPath">excel 路径</param>
        /// <param name="sheetName"></param>
        /// <returns></returns>
        public DataTable ExcelToDataTableODBC(string excelPath, string sql)
        {
            //检验excelPath是否真实存在
            if (File.Exists(excelPath) == false)
            {
                throw new Exception("Can't found the file :" + excelPath);
            }
            //Excel数据导入
            String strExcelConn = "DRIVER=Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb);" +
                                    "UID=admin;" +
                                    "UserCommitSync=Yes;" +
                                    "Threads=3;" +
                                    "SafeTransactions=0;" +
                                    "ReadOnly=1;" +
                                    "PageTimeout=5;" +
                                    "MaxScanRows=8;" +
                                    "MaxBufferSize=2048;" +
                                    "FIL=excel 12.0;" +
                                    "DriverId=1046;" +
                                   // @"DefaultDir=D:\vswork\ExecelConn;" +
                                    "DBQ=" + excelPath;
            string strExcelSelect = "";
            strExcelSelect = sql;
            //需在sheetName前后加 ”[” 与 ”]” 符号,并于sheetName后加入”$”符号,否则会发生Microsoft Jet 数据库引擎无法找到 'sheetName' 对象的错误
            DataSet ds = new DataSet();
            OdbcConnection myExcelConn = null;
            myExcelConn = new OdbcConnection(strExcelConn);
 
            //OdbcDataReader reader = null;
 
            OdbcCommand myExcelCommand = new OdbcCommand(strExcelSelect, myExcelConn);
 
            OdbcDataAdapter myDataAdapter = new OdbcDataAdapter(myExcelCommand);
            try
            {
                myExcelConn.Open();
                myDataAdapter.Fill(ds, "ReadData");
 
            }
            catch (Exception e)
            {
 
            }
            finally
            {
                myExcelConn.Close();
            }
            DataTable result = ds.Tables["ReadData"];
            return result;
        }
        /// <summary>
        /// 将Excel导入到DataTable
        /// </summary>
        /// <param name="excelPath">excel 路径</param>
        /// <param name="sheetName"></param>
        /// <returns></returns>
        public DataTable ExcelToDataTable(string excelPath, string sql)
        {
            //检验excelPath是否真实存在
            if (File.Exists(excelPath) == false)
            {
                throw new Exception("Can't found the file :" + excelPath);
            }
            //Excel数据导入
            String strExcelConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                            "Data Source=" + excelPath + ";" +
                //"Extended Properties=Excel 8.0;";
                            "Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
            string strExcelSelect = "";
            strExcelSelect = sql;
            //需在sheetName前后加 ”[” 与 ”]” 符号,并于sheetName后加入”$”符号,否则会发生Microsoft Jet 数据库引擎无法找到 'sheetName' 对象的错误
            DataSet ds = new DataSet();
            OleDbConnection myExcelConn = null;
            myExcelConn = new OleDbConnection(strExcelConn);
            OleDbCommand myExcelCommand = new OleDbCommand(strExcelSelect, myExcelConn);
 
            OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myExcelCommand);
            try
            {
                myExcelConn.Open();
                myDataAdapter.Fill(ds, "ReadData");
 
            }
            catch(Exception ex)
            {
                
             }
            finally
            {
                myExcelConn.Close();
            }
            DataTable result = new DataTable();
            if (ds.Tables.Count != 0)
            {
                result = ds.Tables["ReadData"];
            }
            else
            {
                result = null;
            }
            return result;
        }
相关文章
|
19天前
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
2月前
|
前端开发
实现Excel文件和其他文件导出为压缩包,并导入
实现Excel文件和其他文件导出为压缩包,并导入
37 1
|
4月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
3月前
|
数据处理 Python
Python 高级技巧:深入解析读取 Excel 文件的多种方法
在数据分析中,从 Excel 文件读取数据是常见需求。本文介绍了使用 Python 的三个库:`pandas`、`openpyxl` 和 `xlrd` 来高效处理 Excel 文件的方法。`pandas` 提供了简洁的接口,而 `openpyxl` 和 `xlrd` 则针对不同版本的 Excel 文件格式提供了详细的数据读取和处理功能。此外,还介绍了如何处理复杂格式(如合并单元格)和进行性能优化(如分块读取)。通过这些技巧,可以轻松应对各种 Excel 数据处理任务。
275 16
|
4月前
|
存储 数据挖掘 测试技术
Python接口自动化中操作Excel文件的技术方法
通过上述方法和库,Python接口自动化中的Excel操作变得既简单又高效,有助于提升自动化测试的整体质量和效率。
46 0
|
5月前
|
关系型数据库 MySQL Windows
MySQL数据导入:MySQL 导入 Excel 文件.md
MySQL数据导入:MySQL 导入 Excel 文件.md
|
6月前
|
存储 关系型数据库 MySQL
Excel 导入 sql3
【7月更文挑战第18天】
55 2
|
6月前
|
存储 开发工具 git
好的git管理方法,标明项目_编号_(功能,不过还是在没有bug出现时就提交为好)+Excel表管理的格式
好的git管理方法,标明项目_编号_(功能,不过还是在没有bug出现时就提交为好)+Excel表管理的格式
|
5月前
|
前端开发 easyexcel
SpringBoot+Vue3实现Excel导入
SpringBoot+Vue3实现Excel导入
160 0
|
6月前
|
前端开发 JavaScript PHP
技术心得:前端点击按钮,导入excel文件,上传到后台,excel接收和更新数据
技术心得:前端点击按钮,导入excel文件,上传到后台,excel接收和更新数据
81 0