当前位置: 首页 > news >正文

漯河网站建设zrgugoogleseo服务公司

漯河网站建设zrgu,googleseo服务公司,深圳福田专业网站推广,公司logo怎么注册记得有一次处理Excel文件对比,自己前后使用VBA和NPOI对比了下效率。由于涉及到页面的渲染和刷新,二者的处理速度差了个数量级(10多秒和几十分钟的差别)。当然使用NPOI操作时也做了一定优化。印象这么深刻这次一有需求就想到了NPOI…

记得有一次处理Excel文件对比,自己前后使用VBA和NPOI对比了下效率。由于涉及到页面的渲染和刷新,二者的处理速度差了个数量级(10多秒和几十分钟的差别)。当然使用NPOI操作时也做了一定优化。印象这么深刻这次一有需求就想到了NPOI。

需求:财务数据,只挑出最新月份(整数类型,yyyyMM)的数据。然后将数据增加一部分固定列内容按格式写入到另外一张表中。

由于宋丹丹老师把一切复杂的问题都总结为三步:打开冰箱门,把大象塞进去,关上冰箱门。那么我也把这个问题拆分出以下几个三步走

1、打开数据源:

使用NPOI可以打开xls和xlsx类型的,这个没有一点问题

由于使用了wpf,下面也又分为(以下没有什么好说的都是正常代码)

        1.1 设置一个按钮

        1.2 点击时弹出“打开文件”框

        1.3如果选择了文件就获取文件路径。

2、读取数据:

上面获取了文件路径,我们就可以正常打开了。

对于如何读取到合适的数据,我在这里有个优化

先只读取日期列,找出最大日期的那些行。这里我用了一个Dictionary<DateTime, List<int>> 来保存行号。同时记录了一个最大的日期值。通过这点只读取了日期最大的行,会减少读取操作。我觉得这一点

 ISheet sheet = workbook.GetSheetAt(0);int cellcount = head.LastCellNum;//一行最多有多少个列long maxRow = sheet.LastRowNum;//页面有多少行Dictionary<DateTime, List<int>> dateRows = new Dictionary<DateTime, List<int>>();var rows = new List<IRow>();for (int i = 1; i < maxRow; i++)//第一行是标题行,忽略{var row = sheet.GetRow(i);var cell = row.GetCell(0);//日期行,数据形式yyyyMMif (cell != null){var num=(int) cell.NumericCellValue;var year = num / 100;var mon = num% 100;var day = 1;var date = new DateTime(year, mon, day);if (dateRows.Keys.Contains(date)){dateRows[date].Add(i);}else{dateRows.Add(date, new List<int> { i });}}}

3、写入并保存文件:

由于单元格有一定格式,我想了一个取巧的办法-使用一个文件模板,保存的时候另存文件。

在数据写入的时候又发现了一个优化点。有20多行他们之前是可以采用循环来赋值的。

 //表1的第10行到34,对应表2的第18到42行,数据格式也一致,完美。for (int j = 9, k = 17; j < 34; j++, k++){if (srcRow.Cells[j].CellType == CellType.Numeric){row.CreateCell(k).SetCellValue(srcRow.Cells[j].NumericCellValue);}}

自我总结:一个简单的程序,自顶向下的思路,逐步解决问题。优化要多码,多总结。

http://www.yayakq.cn/news/57552/

相关文章:

  • 沈阳企业网站制作中国开头的网站怎么做
  • 网站开发组游戏代理怎么找渠道
  • 蓝色旅游网站模板建设网站公司网站
  • 更新文章时间 wordpress东莞整站优化公司火速公司
  • odoo 12 网站开发百度的主页
  • 长宁哪里有做网站优化比较好没有网站想做个链接页面怎么做
  • 网站信息化建设存在的困难浙江网站建设价位
  • 东莞网站建设搭建建设网站培训学校
  • 传奇网站如何建设安徽合肥企业网页制作公司
  • 网站开发 运行及维护网站建设都需要什么
  • 遵义做推广网站丢盖网logo设计免费
  • 网站建设的重点插件功能wordpress
  • 动图从哪个网站做上海网站建设公司哪个好
  • 不用编程做网站网站代理在线
  • php与H5做网站福州公司网站建设_
  • 淄博网站排名外包wordpress只启用cdn
  • 网站改版数据来源表改怎么做食品包装设计特点
  • 主网站怎么做熊掌号优化做网站的找哪个
  • 郑州建立一个网站需要哪些中英文网站多少钱
  • 通信部门网站备案证明wordpress中文字体插件
  • 外贸家具网站四博互联做的网站
  • 如何创建自己网站wordpress orchidv 插件
  • asp 网站模板个人网站页面模板
  • 企业电子商务网站外贸单在哪些网站做
  • 建筑公司网站设计思路wordpress 评论倒序
  • 正规的品牌网站建设服务网推是什么意思
  • 沈阳网站建设 龙兴科技青岛做网站推广
  • 建立微信商城网站长沙广告制作公司
  • 麻涌手机网站设计输入姓名查个人信息
  • 廊坊模板网站建设欧卡乐网站建设