您的位置:首页 > 其它

最佳Excel导入实践(三)

2009-10-24 12:22 162 查看
相关链接

最佳Excel导入实践(一)

最佳Excel导入实践(二)

最佳Excel导入实践(三)

最佳Excel导入实践(四)

最佳Excel导入实践(五)

  为了让系统能够识别待引入的Excel,用户提供的Excel必须满足一定格式上的要求。通常我们的做法是提供Excel模板让用户下载,然后用户往其中填入数据再提交给系统执行导入操作。本篇将主要介绍导入模板的生成。

  上篇讲到的导入规则是此方案的核心,导入模板也将根据此规则动态生成。正如Excel导入最佳实践(一)中已经提到的,本方案中的Excel模板也将通过NPOI 生成。有关NPOI的帮助信息请见:http://www.cnblogs.com/tonyqus/archive/2009/04/12/1434209.html。里面记录了所有生成此模板Excel所需要的知识。

  其实模板的生成主要就是写Excel表头,可用如下遍历方式实现:

HSSFSheet sht=wb.CreateSheet("销售订单");

HSSFRow row=sht.CreateRow(0);

Column col;

for(int i=0;i<regulation.Columns.Count;i++){

col=regulation.Columns[i];

row.CreateCell(i).SetCellValue(col.ColumnName);

}
  当然,上面只实现了模板的最基本的功能--完成了Excel表实的定义。若想让模板更人性化、可用性更好,还可以加入数据有效性验证、表头和表体用颜色区分、需要描述的地方加上批注等。这些附加操作都可以在上面的NPOI的帮助找到,这里就不再重述。最终生成的模板Excel大致如下:



  其中的下拉项是根据规则类中Column对象的RefField,RefTable,RefConvertField和RefFilter属性执行类似如下SQL语句得来:

SELECT RefConvertField FROM RefTable WHERE RefFilter
  这样用户体验明显好了很多,而且下拉项是随系统中的数据而变化的,做到了模板的动态化,用Excel导入最佳实践(一)介绍的其它方法是很难实现的。再次为NPOI做一下广告:目前.net环境下最好的读写Excel组件!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: