首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

网站导入Excel,数据字段不固定,没法读取

2013-09-24 
网站导入Excel,数据字段不固定,无法读取。 利用Aspose.Cells控件 读取 Excel 表格 遇到一个问题。正常上传表

网站导入Excel,数据字段不固定,无法读取。
 利用Aspose.Cells控件 读取 Excel 表格 遇到一个问题。

正常上传表格格式
姓名、身份证号、月薪、房租、电视费

测试阶段,客户上传的表格格式有可能是:

身份证号、房租、月薪、姓名、电视费

表格内部列完全打乱。

以前做的是利用下标来做区分
读取姓名 代码为: dt.Rows[i][0].ToString();
身份证号 代码为:dt.Rows[i][1].ToString();
...., 这种方法完全可以正常读取入库。

但现在想 利用
dt.Rows[i]["姓名"].ToString();方式读取姓名行中数据 会出现错误。


列“姓名”不属于表 。 
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.ArgumentException: 列“姓名”不属于表 。


excel 数据 Aspose.Cells
[解决办法]
当然,列头只对最上面一行有效

你需要先循环读取
Dictionary<string, int> dict = new Dictionary<string, int>();
for (int i = 0; i <= 4; i++)
{
    dict.Add(dt.Rows[0][i].ToString(), i);
}

匹配列头,然后根据这个去读取数据:
dt.Rows[i][dict["姓名"]].ToString();
[解决办法]
利用dt.Rows[i]["姓名"].ToString();这种方式读取,有时候存在空格或Tab键也没看到,既然Excel自己整理的,你应该有一个格式以及你的表相对应.或者你先把Excel全部导入数据库再做整理

热点排行