不能修改表“sheet1”的設計。它在只讀數據庫中。

前言:

項目有個需求,我需要把數據導入到Excle中,但是在導入數據的時候出現了一個錯誤:不能修改表“sheet1”的設計。它在只讀數據庫中。這個錯誤對我剛接觸關於Excle的也是很懵逼啊,想了很久才知道錯誤的原因。


先看代碼吧這樣更清楚點:

注意:我圖片上註釋掉的兩行代碼是因爲我不必去創建sheet1表,因爲在Excle有個默認的Sheet表,注意$符號別漏掉了

錯誤的原因就是:

IMEX ( IMport EXport mode )設置
IMEX 有三種模式,各自引起的讀寫行爲也不同,容後再述:
0 is Export mode:只能寫入
1 is Import mode:只能讀取
2 is Linked mode (full update capabilities):讀寫均可
我這裏特別要說明的就是 IMEX 參數了,因爲不同的模式代表著不同的讀寫行爲:
當IMEX=0 時爲“匯出模式”,這個模式開啓的 Excel 檔案只能用來做“寫入”用途。
當 IMEX=1 時爲“匯入模式”,這個模式開啓的 Excel 檔案只能用來做“讀取”用途。
當 IMEX=2 時爲“連結模式”,這個模式開啓的 Excel 檔案可同時支援“讀取”與“寫入”用途。(這個是不能用的)
IMEX=2的是寫不了的,還不如不加.0:寫,1讀
IMEX=1 / IMEX=2:不能修改表“用戶”的設計。它在只讀數據庫中。

解決辦法:

//把連接的IMEX設置爲0
strConn = String.Format(@"Provider=Microsoft.Ace.OleDb.12.0;Persist Security Info=False;Data Source={0};Extended Properties=""Excel 12.0;HDR=YES;IMEX=0;""", filePath);

結尾:

          分享:多積累,多實踐,多奮鬥!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章