在Windows Server2008R2中导入Excel不能使用Jet 4.0的解决方法

简介: 一直使用以下代码从Excel中取数据,速度快方便: string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strFileName + ";" + "Extended Properties=Excel 8.

一直使用以下代码从Excel中取数据,速度快方便:

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strFileName + ";" + "Extended Properties=Excel 8.0;";
OleDbDataAdapter ExcelDA = new OleDbDataAdapter("SELECT * FROM [" + strSheet + "$]", strConn);

DataSet dstExcel = new DataSet();
ExcelDA.Fill(dstExcel, "ExcelInfo");

但这次发布到windows 2008 R2上后却报错。上网查询后得知IIS7会支持一部分32位DLL,但对于与底层绑定较深的组件却不支持。Jet 4.0显示属于后一种组件。微软已经不支持Jet 4.0的升级,所以目前没有,今后也不会再出现Jet 4.0的64位版本。

基于此网上大部分的解决方案是将应用程序池的Enable 32 bit选项设为True(如下图所示)。这种方案的确可以解决问题,但有以下隐患:

1.今后的发展方向肯定是64位,使用这种方式只是临时解决了问题,治标不治本。

2.在我们系统中还用到了Oracle Client, SAP Connector等仍旧需要64位

3.MOSS系统中也可能会用到类似的功能,不可以降到32位

鉴于以上问题,我开始查找替代方案,终于查到也可以使用Microsoft.ACE.OLEDB对Excel进行操作。修改后的脚本如下:

string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source="+ strFileName + ";" + "Extended Properties='Excel 12.0;HDR=YES'";
OleDbDataAdapter ExcelDA = new OleDbDataAdapter("SELECT * FROM [" + strSheet + "$]", strConn);

DataSet dstExcel = new DataSet();
ExcelDA.Fill(dstExcel, "ExcelInfo");

注意'Excel 12.0;HDR=YES'处的单引号不能少。

相信还有其它替代方案,请大家多提宝贵意见。

目录
相关文章
|
SQL 存储 数据库
excel导入sql数据库
将Excel数据导入SQL数据库是一个相对常见的任务,可以通过多种方法来实现。以下是一些常用的方法: ### 使用SQL Server Management Studio (SSMS) 1
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
机器学习/深度学习 并行计算 异构计算
WINDOWS安装eiseg遇到的问题和解决方法
通过本文的详细步骤和问题解决方法,希望能帮助你顺利在 Windows 系统上安装和运行 EISeg。
715 2
|
前端开发
实现Excel文件和其他文件导出为压缩包,并导入
实现Excel文件和其他文件导出为压缩包,并导入
283 1
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
弹性计算 安全 网络安全
阿里云国际版无法远程连接Windows服务器的解决方法
阿里云国际版无法远程连接Windows服务器的解决方法
|
弹性计算 Linux 数据安全/隐私保护
云服务器 ECS产品使用问题之linux服务器的存档如何导入Windows服务器
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
云服务器 ECS产品使用问题之linux服务器的存档如何导入Windows服务器
|
前端开发 JavaScript API
前端基于XLSX实现数据导出到Excel表格,以及提示“文件已经被损坏,无法打开”的解决方法
前端基于XLSX实现数据导出到Excel表格,以及提示“文件已经被损坏,无法打开”的解决方法
1365 0
Windows7电脑启动时提示文件winload.exe无法验证其数字签名,错误代码0xc0000428的解决方法
Windows7电脑启动时提示文件winload.exe无法验证其数字签名,错误代码0xc0000428的解决方法
|
存储 关系型数据库 MySQL
Excel 导入 sql3
【7月更文挑战第18天】
203 2

热门文章

最新文章