C#导入excel文件,捕捉到的异常为“外部表不是预期的格式。”

问题:
由于多个excel表中,所用数据的单元格中英状态下混用,导致某些应有的结果得不到。故此,我全部替换excel中的括号使其统一,在保存时,提示“某些单元格具有交迭的条件格式区域。早期版本的excel将无法评估交迭单元格上的。。。”内容,如图所示。然鹅,我并没考虑这么多,生硬保存。再次导入,出现异常。
在这里插入图片描述

原因:
在早期版本的 Excel 中,并非所有新功能都受支持。当你在兼容性模式下工作或希望将工作簿保存为 Excel 97-2003 (.xls) 文件格式时,兼容性检查器可帮助你识别可能会在早期版本的 Excel 中导致显著功能损失或轻微保真损失的问题。

解决办法:
改动后,将文件另存为一个格式,由于自身的excel版本是最新版,打开03版,改动后并保存会出现问题,干脆,直接另存为,03版的格式。

,c#中,用于操作的链接字符为

OpenFileDialog file = new OpenFileDialog();
file.Filter = "Excel(*.xlsx)|*.xlsx|Excel(*.xlsm)|*.xlsm|Excel(*.*)|*.*";

file.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); //获得桌面路径
file.Multiselect = false; //不允许多重选择
if (file.ShowDialog() == DialogResult.Cancel) return;
var path = file.FileName;
string fname = Path.GetFileName(path);

//此连接可以操作.xls与.xlsx文件 (支持Excel2003 和 Excel2007 的连接字符串)
string connString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "data source=" + path + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1'"; 

其中,
HDR =Yes,表示第一行是标题,且不作为数据使用。
当IMEX=0,表示该excel文档只能“写入”;
当IMEX=1,表示该excel文档只能“读出”;
当IMEX=2,表示该excel文档可读可写。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值