不能修改表“sheet1”的设计。它在只读数据库中。

前言:

项目有个需求,我需要把数据导入到Excle中,但是在导入数据的时候出现了一个错误:不能修改表“sheet1”的设计。它在只读数据库中。这个错误对我刚接触关于Excle的也是很懵逼啊,想了很久才知道错误的原因。


先看代码吧这样更清楚点:

不能修改表“sheet1”的设计。它在只读数据库中。_第1张图片

注意:我图片上注释掉的两行代码是因为我不必去创建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);

结尾:

          分享:多积累,多实践,多奋斗!

你可能感兴趣的:(asp.net,C#,Excle)