'_xlnm._FilterDatabase$' 不是一个有效名称

33 篇文章 0 订阅

做了很多次读取Execl的功能了。今天头一次碰到这个问题:

'_xlnm._FilterDatabase$' 不是一个有效名称。请确认它不包含无效的字符或标点,且名称不太长。


今天是准备不考虑一个Execl有多少个表,表名叫什么。

通过下面代码:

DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

for (int i = 0; i < schemaTable.Rows.Count; i++)
{
        //schemaTable.Rows[i][2]每行第2列 或者"TABLE_NAME"   为表/选项卡名
        string TableName = schemaTable.Rows[i]["TABLE_NAME"].ToString();

}

突然发现这样一个异常。打开Execl查看,的确没有'_xlnm._FilterDatabase$'这个鬼东西

但是读取出来的确有3个表。

发现Filter这个单词是过滤,重新打开看了下,的确是有过滤的。

去掉去掉,再试正常了,然后找了一张干净的表,再试试,也没问题。

好吧,避免Execl中存在过滤 会多一个 _xlnm._FilterDatabase$ 恶心的表,加个判断吧。


if (TableName.Contains("_FilterDatabase"))
{
         continue;
}

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值