ASP.Net C# 在64bit下讀取EXCEL問題

原创 2009年11月19日 15:21:00

ASP.Net C# 64bit下讀取EXCEL問題

32bit下,ASP.Net 讀取EXCEL可以透過OLEDB,ODBC等連接driver來直接讀取。然而到了64bit時,microsoft不在支援上述driver,導致讀取excel時變得痛苦萬分。(并聯想到引用32bit dll時的痛苦。。。。。)

winform編程時,當然可以利用將程式編譯成32bit來運行(右鍵專案à屬性à可選擇CPU類型),然而如果是透過IIS來搞,就麻煩了。

一般IIS6.0 是支援32bit 64bit的,但可惜的是,不同時支援兩者。(到了IIS7.0就可以了) 下面主要講講如何在IIS6.0 ASP.Net 2.0 (64bit)下,讀取Excel的問題,這也是最近一直在琢磨的東西,但還是未找到完美的解決方法。

1.      淒涼的 Microsoft.Jet.OLEDB.4.0 不能用了。

一切要從server的升級說起,一天老大要將server升級(32bit升級到64bit),於是所有的程序都要測試過,大部份都是沒有問題,但是在一個function user透過web上傳excel,然後讀取excel將資料importSQL Server)時,發現資料未寫入DB。。。

OKdebug, 發現excel有通過web service上傳到伺服器,所以應該是讀取excel資料時發生問題,測試后報錯:Microsoft.Jet.OLEDB.4.0 not regist..

Google老師告訴我,在64bit上已經沒有此類driver了。。。哭。。。

繼續google。。。發現。。。。

2.      切換IIS6.0 64bit 32bit

當你的IIS只是6.0的時候,你只有選擇32bit 或者64bit, microsoft又告訴我,可以切換到ASP.Net 2.0(32bit),就可以正常讀啦。

一高興,測試,果然成功。。。哇哈哈哈哈。。。

但是問題來了,此server還裝有SQL server 2005 64bit版本,造成其reporting service無法用了。。再次哭。。。

p.s. 切換方式可以在microsoft網站上找到(如下)

.    按一下 [開始],再按一下 [執行],輸入 cmd,然後按一下 [確定]

.    輸入下列命令以啟用 32 位元模式:

cscript %SYSTEMDRIVE%/inetpub/adminscripts/adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

.    輸入下列命令以安裝 ASP.NET 2.0 (32 位元) 的版本,以及在 IIS 根目錄和下列位置底下安裝指令碼對應:

%SYSTEMROOT%/Microsoft.NET/Framework/v2.0.40607/aspnet_regiis.exe -i

.    請確定在 Internet Information Services Manager Web Service Extension 清單中,將 ASP.NET 2.0.40607 (32 位元) 的狀態設定為 Allowed

 

3.      沒辦法了,只要利用第三方dll來讀取了。

在此找到幾個較好的: xlReader(需付費) , IExcelDataReader(好像免費), Aspose.Cells(需付費)

第一個xlReader,測了幾下,沒成功,放棄。

第二個,很好用(關鍵是免費哈),但是碰到問題,在讀取excel2007時,一切都正常,在讀取excel2003英文版時也OK,就是讀取excel2003繁體中文版時,葛兒屁了。。。。。。

基本用法如下(網上都有)

 

第三個,哎。。。太貴了,貌似一個licence $599 …網上有一個破解版,我下了用用,挺好用的(.net 2.0),本著支持正版的原則,要用的同學自己google吧,我就不提供網址了。

4.      如果覺得以上方法都麻煩,那就別讓user上傳excel了,直接傳csv吧,就

可以用類似讀取txt的方式來讀取資料了。。。

5.  如誰有更好的方式,歡迎分享…如能留言,短信給偶,更是感激萬分。。。

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

win7(64bit)中asp.net连接sybase

win7(64bit)中asp.net连接sybase 总的来说有三种方式: 1.ODBC :需要安装ase odbc驱动。本文里用的是ase15版本 2.OLEDB:需要安装ase o...

.net 4 for 64bit

  • 2014-10-20 11:43
  • 48.11MB
  • 下载

Force .NET application to run in 32bit process on 64bit OS

Introduction Our clients install our product on different environments. Some of them have 32bit ser...

Asp.net(C#)操作Excel的问题

1.使用ADO.NET访问Excel?答:    首先代码如下。           //指定链接的数据源      &...

ASP.NET(C#)读取Excel的文件内容

http://www.jb51.net/article/34096.htm 开发过程中难免会遇到读取Excel文件的情况,本文主要记录读取Excel文件的方法由于本文目的是供自己和各位童鞋日...

C#读取excel以及asp.net消息头的使用

生成或者读取excel文件在java或者c#都是比较吸引眼球的一大亮点,说直白点就是流的使用,生成或者读取excel有很多种方法,现在我就介绍一种比较好用的方法(NPOI) 我们可以把NPOI看成是...

win7 64bit iis配置及asp+sql2005

win7 64bit iis配置及asp+sql2005因为要运行一个asp的网站,所以必须在iis上运行。而我的机器是win7 64位的,机上装的iis是iis7.5的,呵呵都是最新的版本,让我昨天...

win7 64BIT下使用VC2005的问题

在win7 64BIT环境下安装VC2005,安装过程中会提醒兼容问题 如下图: 点击运行程序,直到安装结束,打开VC2005,会提示如下图的界面: 点击退出Visual Stud...

ubuntu12.04 64bit 常见问题

////////////////////////////////////////////////////////////////////////////////////////////////////...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)