• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

五蕴

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

最佳Excel导入实践(三)

相关链接
最佳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组件!

 

分类: NPOI, 架构&设计
标签: NPOI, POI, Excel, 架构设计
 

posted on 2012-12-06 16:49  五蕴  阅读(152)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3