OLEDB IMEX行数限制的问题
今天碰到一個問題需要想EXCEL表中寫數據,折騰了好久才發現是IMEX惹得禍,所以記錄下提醒自己,也希望大家不要出同樣的錯。
碰到問題:使用語句 "insert into [Sheet1$] (大類) values ('test')" 無法插入 。
原因:Provider=Microsoft.Jet.OLEDB.4.0;Data Source='2008-08.xls'; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'
解決方法: 去掉IMEX=1
補充:
向EXCEL插入數據時 數據類型是由前8行數據中數據類型占優選擇?? 例如:分數一列前前8行為空值 插入5為字符串格式,如果前8行為數字
格式? 插入5為數字格式關于IMEX的資料:
IMEX是用來告訴驅動程序使用Excel文件的模式,其值有0、1、2三種,分別代表導出、導入、混合模式。當我們設置IMEX=1時將強制混合
數據轉換為文本,但僅僅這種設置并不可靠,IMEX=1只確保在某列前8行數據至少有一個是文本項的時候才起作用,它只是把查找前8行數
據中數據類型占優選擇的行為作了略微的改變。例如某列前8行數據全為純數字,那么它仍然以數字類型作為該列的數據類型,隨后行里的
含有文本的數據仍然變空。 另一個改進的措施是IMEX=1與注冊表值TypeGuessRows配合使用,TypeGuessRows 值決定了ISAM 驅動程序從前幾條數據采樣確定數據
類型,默認為“8”。可以通過修改“HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Jet/4.0/Engines/Excel”下的該注冊表值來更改采樣行數
。但是這種改進還是沒有根本上解決問題,即使我們把IMEX設為“1”, TypeGuessRows設得再大,例如1000,假設數據表有1001行,某列
前1000行全為純數字,該列的第1001行又是一個文本,ISAM驅動的這種機制還是讓這列的數據變成空。
總結
以上是生活随笔為你收集整理的OLEDB IMEX行数限制的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学前教育考研什么专业(学前教育专业考研的
- 下一篇: 印度承认英国女王吗