2014年4月17日 星期四

[Asp.Net]解決匯入Excel數值資料的錯誤

資料來源
http://yukishijob.blogspot.tw/2013/03/aspnetexcel.html

參考資料:

[ASP.NET] Excel 自動轉型造成的錯誤

透過 OleDb 精準讀入 Excel 檔的方法


基本上參考以上兩篇大致上就可以解決此問題,不過還是筆記一下:)

line_15_4
123
原始資料,超過1以上的數值左上角會出現綠色三角形,
提示「此儲存格內的數字其格式為文字或開頭為單引號」
即使強迫讓欄位設定為文字型態,依然上傳至網頁會出現數值為0的現象
table_0 
後來想到那直接重新輸入數值,雖然上傳數值會變正常
但資料要有一萬多筆,不就重key到死…一點都不便利啊~

之後又在狗狗大神到處找答案
有參考到這篇↓

EXCEL 移除 ' 符號 並讓「格式為文字」的數字,一次轉換成數字格式的方法

確實能解決問題,但程式主要是給一般對電腦不是很熟的人使用
每次轉換都要請別人這樣轉,也太unfriendlly惹吧!!
肯定會縮"告"麻搞得這麼麻煩
不過這招有偷學到我有暗爽倒是真的,哈

總之後來估一下資料就發現這根本就是程式的問題嘛~
我的原始程式碼是這樣的:
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + folder + this.FileUpload1.FileName +
                 ";Extended Properties='Excel 8.0;HDR=Yes';IMEX=1 ";
string queryStr = "SELECT * FROM [reforal$]";
修改步驟
  1. 在Connection String 加入 "IMEX=1;"
  2. 修改Regedit,路徑:
    Hkey_Local_Machine/Software/Microsoft/Jet/4.0/Engines/Excel 下TypeGuessRows 的值改成 0
    (如果電腦沒有灌office就只有4.0的樣子,有的路徑可能是3.5,不確定)
 jet
就解決了._.
---------------------

EXCEL 移除 ' 符號 並讓「格式為文字」的數字,一次轉換成數字格式的方

http://cocochocolatetw.pixnet.net/blog/post/31264848


有些資料庫匯出的EXCEL檔案格式中,在資料前都會有 ' 符號(表示文字格式),如下圖:
image
要如何一次移除所有 ' 符號並讓「格式為文字」的數字,一次轉換成數字格式的方法呢?
1.先在任一個空的儲存格上,鍵入數值 1。
2.選取剛剛鍵入1的儲存格,然後 [複製]
3.選取您想要轉換儲存格之範圍。
4.在 [編輯] 功能表上,按一下 [選擇性貼上]
image

5.在 [運算] 下方按一下 [乘]
image
6.按一下 [確定]
7.最後再把 所鍵入1 的儲存格刪掉。
image
完成囉^^

沒有留言: