解决Windows Server2008R2中导入Excel不能使用Jet 4.0

操作系统使用了Windows Server2008R2(Windows Server2008R2是64位系统,同时配置IIS7.0

原读取Excel文件代码为:

string strConn = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=‘{0}‘;Extended Properties=‘Excel 8.0;HDR=Yes;IMEX=1‘", FilePath);
OleDbDataAdapter ExcelDA = new OleDbDataAdapter(“SELECT * FROM [" + strSheet + "$]“, strConn);

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

在Windows Server2003上一切正常,64位服务器上就不正常了,查找资料说,可以把将应用程序池的Enable 32 bit选项设为True,但IIS的稳定性和兼容性不太好。

但是实际操作中改应用池32位为True也不行。

解决方法一:

再查资料使用Microsoft.ACE.OLEDB对Excel进行操作。修改后的脚本如下:

string strConn = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=‘Excel 12.0;HDR=YES‘", FilePath);
DataSet dstExcel = new DataSet();
ExcelDA.Fill(dstExcel, “ExcelInfo”);

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

测试后发现,应用程序池的Enable 32 bit选项设为True加上这个链接方式就正常使用了。

解决方法二:

装一个“AccessDatabaseEngine_X64”驱动程序,就不用修改程序池选项,再使用“Microsoft.ACE.OLEDB”链接字符串。

在我的程序中我判断了一下操作系统的位数,来自动切换相应的链接字符串。

Environment.Is64BitOperatingSystem
时间: 2024-10-09 21:25:23

解决Windows Server2008R2中导入Excel不能使用Jet 4.0的相关文章

解决windows环境中python2.7'ascii' codec can't encode character

在python2.7下,将字符串写入到文件时会出现"UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position"的错误,原因是由于python基于ASCII处理字符的,当出现不属于ASCII的字符时,会出现错误信息. 原因是pip安装python包会加载我的用户目录,我的用户目录恰好是中文的,ascii不能编码.解决办法是: python目录 Python27\Lib\site-package

C#第三次作业:在c#中导入excel,并生成html文件

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.OleDb; using System.IO; namespace readFile { pub

如何在数据库中导入excel文件内的数据

如何在数据库中轻松导入excel格式的文件 1)打开sql server,找到要导入数据的数据库,右键>>任务>>导入数据 2)按照图示选择要导入的excel 3)选择导入到哪个数据库 4)导入excel选择第一项即可,选择第二项是表与表直接内容的筛选复制 5)选择源表和源视图,可预览表中数据 6)编辑映射页面(如上一步图) 7)继续下一步,点击完成,看到传输数据完成页面 8)进入数据库刷新,查看刚刚导入的表,完成!

在windows 10中使用pip安装psutil 4.3.0

环境版本:windows + python 2.7/3.5共存 使用的python是使用exe安装的,默认已经有pip并确保PATH设置正确,默认安装psutil 4.3.0 1:使用cmd安装2.7的psutil c:\> pip install psutil 2:同样使用cmd安装3.5的psutil 默认3.5安装在c:\program files\python\python35\中,而3.5的pip在c:\program files\python\python35\scripts\中 c

asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0" 提供程序"

asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0" 提供程序" 笔者在项目中做做了一个从Excel表格中导入数据的模块.大体上asp.net项目中导入Excel大体分成三类: 1)采用c#内置方案System.Data.OleDb(限制较小, 通用) 2)采用Excel的COM组件(会有版本问题) 3)采用伪Excel文件.即使用文本流的方式根据需求自己定义数据格式.同时在服务端进行反格式化 笔者采

Asp.net中操作Excel的代码解析

一 . 使用Excel对象模型创建Excel文档: 1.创建简单的文档 1 try 2 { 3 //创建Excel程序对象 4 Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); 5 //设置创建WorkBook时,WorkBook包含表单个数 6 excel.SheetsInNewWorkbook = 1; 7 //创建WorkBook 8 ex

导入Excel过程和注意的点(上)

简述过程 1.从excel导入到数据库.2.导入方法:bcp导入法3.注意事项: (1)检查文件的信息(大小.格式... (2)  从excel导入到一张临时表(自己代码创建的一张数据库) (3) 从临时表导入到虚表 (4)虚表导入实体表 详细说明 1.从excel导入到数据库. 2.导入方法:bcp导入法 这是一种导入的方法,也可以采用其他的方式 3.注意事项: (1)检查文件的信息(大小.格式...) (2)  从excel导入到一张临时表(自己代码创建的一张数据库) 这张表格,一般是存你导

使用jxl导入excel文件

import jxl.Cell;import jxl.Sheet;import jxl.Workbook; action中: /** * 导入计划 * @author liubf * @version 1.0 * @createTime 2015-6-16 */ @RequestMapping("insertWBSPlan") public ResBean insertWBSPlan (HttpServletRequest request, HttpServletResponse re

Java中导入导出Excel -- POI技术

一.介绍: 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际的开发中,很多时候需要实现导入.导出Excel的应用. 目前,比较常用的实现Java导入.导出Excel的技术有两种Jakarta POI和Java Excel 下面我就分别讲解一下如何使用这两个技术实现导入.导出Excel 二.使用Jakarta POI导入.导出Excel Jakarta PO