在使用 ADO.NET 导出 Excel 文件时,设置 IMEX=1 仍不能导出所有数据的解决办法
今天遇到一個問題,在使用 ADO.NET 導出 Excel 文件時,連接字符串里面已經設置了 IMEX=1,仍有部分數據不能導出,經過研究,需要在注冊表中進行設置 TypeGuessRows 的配置,默認情況下,驅動程序會掃描前 8 行數據,來對數據類型進行采樣。設置為 0 ,將對列的所有行進行掃描,如果前八行采樣數據都是數值類型的話,設置 IMEX = 1 也不會將剩下的行的默認數據類型轉換為文本,它將保留數值類型,也就是把整個列當成數字類型對待。 因此,要想得到完整的數據,需要修改注冊表的設置 TypeGuessRows 為 0。TypeGuessRows 在注冊表的位置:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel]
Windows 7等 64 系統:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel]
IMEX 的可能設置是:
0 Export 模式
1 Import 模式
2 Linked 模式(full update capabilities)
設置 TypeGuessRows 為 0 將會導致性能的下降。IMEX=1 數據內容也能出現不正常的現象,比如長數字可能會出現科學計數法的格式顯示。比較好的做法是導出前,對所有單元格進行處理,在單元格內容前面加 '。
?
轉自:http://dotnet.aspx.cc/file/ADO.NET-Excel-IMEX=1.aspx
總結
以上是生活随笔為你收集整理的在使用 ADO.NET 导出 Excel 文件时,设置 IMEX=1 仍不能导出所有数据的解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BGP no-export
- 下一篇: 北京一地铁口现煎饼果子机器人:3分钟一个