• 喜欢和红酒的朋友注意了!!!
  • 喜欢和红酒的朋友注意了!!!
  • 喜欢和红酒的朋友注意了!!!
  • 广州市酒管家贸易有限公司是一家领先的进口葡萄酒跨境贸易公司, 为进口商提供金融、 选酒、 海运、 报关、 仓库全方位一体的供应链服务。 公司股东往返国外多 年, 为市场葡萄酒收藏家和葡萄酒爱好者从事采购、 推荐酒庄的服务。 公司熟悉市场运作,有着独特的市场运营理念, 为客户提供量身定制的营销方案、 产品定位路线并且利用专业 大数据分析采购合理性。 采购方面直采直供, 没有中间商直达酒庄源头, 帮助客户减少中间酒商, 最大化降低采购成本, 实现客户利润最大化

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

博客 James 3个月前 (09-10) 87次浏览 已收录 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”链接字符串。
密码:9zy1

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

Environment.Is64BitOperatingSystem


老余博客, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:解决Windows Server2008R2中导入Excel不能使用Jet 4.0

广州市酒管家贸易有限公司(www.jiuguanjiamaoyi.com)是一家葡萄酒进口以及葡萄酒批发零售与一体的公司。我们致力于在全国范围内用最好的价格提供最优质的葡萄酒。酒管家的使命是用高品质的葡萄酒和完善的服务来传播给大家快乐与享受。我们随时欢迎您的到来,让您体验国内最专业的葡萄酒文化! 购买联系:13672661181(微信同号)
喜欢 (4)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址