OLEDB IMEX行數限制的問題

2021-09-22 10:56:50 字數 975 閱讀 9598

今天碰到乙個問題需要想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驅動的這種機制還是讓這列的資料變成空。

分類: 

asp.net

OLEDB IMEX行數限制的問題

今天碰到乙個問題需要想excel表中寫資料,折騰了好久才發現是imex惹得禍,所以記錄下提醒自己,也希望大家不要出同樣的錯。碰到問題 使用語句 insert into sheet1 大類 values test 無法插入 原因 provider microsoft.jet.oledb.4.0 dat...

限制文字行數

1行 white space nowrap overflow hidden text overflow ellipsis ps 一定要指定容器的寬度,不然的話是沒有用的。多行 方法一 只支援 webkit核心,不支援火狐 方法二 不管怎樣,省略號都會出現,建議配合js,只有超出高度時,才顯示 aft...

Oracle Fetch(限制行數)子句

fetch子句在oracle中可以用來限制查詢返回的行數,本教程將教大家如何使用fetch子句。以下說明了行限制子句的語法 offset offset rows fetch next row count percent percent rows only with ties offset子句指定在行...