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