最近需要统计各种关键词,写txt是最基本也是最简单的,但是对于同类型下的相似的统计会生成大量txt文件,不是很友好,因此选择使用写入excle表单的方式来进行同类别不同子类的统计

使用的是c#的NPOI操作excle,对于NPOI,可以网上查找更多资料

需求:统计各个学科下所有期刊的关键词

读取excle表:

private Dictionary<string,string> readExcle(){Dictionary<string, string> subject_journal_dic = new Dictionary<string, string>();//学科 期刊字典string importExcelPath = "E:\\*****.xlsx";//学科期刊表IWorkbook readWorkbook = WorkbookFactory.Create(importExcelPath);ISheet sheet = readWorkbook.GetSheetAt(0);//获取第一个工作薄IRow Columns = (IRow)sheet.GetRow(0);//获取第一行,列名//导出excelfor (int i = 1; i <= sheet.LastRowNum; i++){IRow dataItem = (IRow)sheet.GetRow(i);var journalId = dataItem.Cells[1].ToString();if (string.IsNullOrEmpty(journalId))break;var subjectName = dataItem.Cells[8].ToString();if (subject_journal_dic.ContainsKey(subjectName)){subject_journal_dic[subjectName] = subject_journal_dic[subjectName] + "+" + journalId;}else{subject_journal_dic.Add(subjectName, journalId);}}return subject_journal_dic;}

写入新表:

//写excle
public void start(){Dictionary<string, string> subject_journal_dic = readExcle();string exportExcelPath = "e:\\*****.xlsx";FileStream fs = new FileStream(exportExcelPath, FileMode.OpenOrCreate, FileAccess.ReadWrite);var writeWorkbook = new XSSFWorkbook();foreach (var item in subject_journal_dic){Console.WriteLine($"处理学科:{item.Key}");var writeSheet = writeWorkbook.CreateSheet(item.Key.Replace("/","-"));//创建表单IRow writeColumns = writeSheet.CreateRow(0);//新建行,一般将第一行作为标题行writeColumns.CreateCell(0).SetCellValue("关键词");writeColumns.CreateCell(1).SetCellValue("词频");var keywordsDic = new Dictionary<string, int>();//获取学科下所有期刊的关键词,写入keywordsDic(自己实现,一般是连数据库查询)//·······int rowIndex = 1;int icount = 0;var sortedkeywordsDic = keywordsDic.OrderByDescending(c => c.Value);//对于关键词进行词频的排序foreach (var keyword in sortedkeywordsDic){if (icount >= 30)break;IRow newwriteColumns = writeSheet.CreateRow(rowIndex);//创建新行rowIndex++;newwriteColumns.CreateCell(0).SetCellValue(keyword.Key);//新行写入数据newwriteColumns.CreateCell(1).SetCellValue(keyword.Value);//新行写入数据icount++;}}writeWorkbook.Write(fs);fs.Close();Console.WriteLine("处理完成");Console.ReadKey();}

C#使用NPIO读写excle,并生成多个表单相关推荐

  1. php table表单下载,GitHub - Zerolone/auto: 用php生成表格、表单 phh create form table

    auto form 用php生成表格.表单 php create form grid 想要实现的效果 通过php生成html表单 表格 info use php to create form grid ...

  2. php怎么生成前端网页,PHP自动生成前端的表单框架

    * 为当前所在菜单项样式 * @param string $controller_name * @param string $action_name * @param string $style * ...

  3. php token 表单重复提交,PHP生成token防止表单重复提交2个例子

    防止表单重复提交的解决方案非常的简单,我们下面两个例子都是生成一个随机的token验证用户是不是由我们站内提交并且进行重复验证即可实现了. 在网上搜索了一下有很多站长都这样说的 1.提交按钮置disa ...

  4. v-for 循环生成多个表单元素 给动态生成的表单元素绑定值并且添加校验规则

    需求:点击新增按钮 能不断生成下级部门,所以我再data中定义了一个变量 空数组 subordinateDepartmentNum:[] 默认值设置为[] 给增加按钮添加点击事件 每点击一次按钮  s ...

  5. VBA自动生成excel的表单及链接的方法

    自动生成表单 Sub generateMenu()Dim stCol As Integer, stRow As IntegermenuName = InputBox("MenuSheetNa ...

  6. android 生成多个表单,Android根据word模板文档将表单数据生成word文档的方案整理...

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 尝试的方案包括以下几种: freemarker 只能在java项目上运行,无法在Android项目上运行: poi 解析doc文件可 ...

  7. html表单 asp验证,ASP中JavaScript处理复杂表单的生成与验证

    ASP中JavaScript处理复杂表单的生成与验证 更新时间:2007年03月25日 00:00:00   作者: 这里所谓的复杂表单,是指表单中包含多种不同的输入类型,比如下拉列表框.单行文本.多 ...

  8. java excel 饼图,java 导入导出excle 和 生成柱状图饼状图的demo/excle数据如何转成饼状图...

    在EXCEL中,如何把表格中的数据转换成饼状图? 在Excel中,把中的数据转换状图的操作步骤如下: 想转换的数据源,插入饼状图,Excel会自动根据选择的数据源生成饼状图.接下来,可以自定义饼状图的 ...

  9. R语言使用reshape2包的melt函数将dataframe从宽表到长表(Wide- to long-format)、指定行标识符变量、并自定义生成的长表的标识符列的名称

    R语言使用reshape2包的melt函数将dataframe从宽表到长表(Wide- to long-format).指定行标识符变量.并自定义生成的长表的标识符列的名称 目录

  10. 使用Vue动态生成form表单的实例代码

    具有数据收集.校验和提交功能的表单生成器,包含复选框.单选框.输入框.下拉选择框等元素以及,省市区三级联动,时间选择,日期选择,颜色选择,文件/图片上传功能,支持事件扩展. 欢迎大家star学习交流: ...

最新文章

  1. 浅谈Android组件化
  2. 【Android 内存优化】自定义组件长图组件 ( 自定义组件构造方法 )
  3. SQL_server 的基本操作
  4. 如何使用eclipse打开已有工程
  5. 进程分析命令(持续更新中)
  6. 用eval在txt中存储list,dict,tuple
  7. java string字符拼接符+的研究
  8. CVPR 2019 论文大盘点—文本图像相关篇
  9. Bootstrap表单
  10. 和方舟rust一样的手游_偶像梦幻祭2新活动 ES手游全新开服
  11. Eclipse-插件的安装之link文件方法
  12. 谷粒商城:15.商城业务 — 商品上架
  13. DNSPod十问党霏霏:充电桩是披着高科技外皮的传统基建?
  14. java实现word,ppt,excel,jpg转pdf
  15. 小米微信与电脑连接到服务器,小米微信多开文件怎么上传电脑
  16. linux烧录到手机,新人求教,怎么烧录Linux系统到一个小芯片上?
  17. Python不用声明变量吗
  18. 对 kubenetes 扩容后端 rbd 磁盘容量
  19. 云计算企业商战宝典:一战定《输赢》
  20. VMware虚拟机模拟VxWorks硬件环境

热门文章

  1. 【消费量预测】基于matlab碳排放约束下煤炭消费量预测【含Matlab源码 223期】
  2. 安全模式 提权_WEB安全第八章实战篇01 提权安全狗服务器
  3. 自然语言处理 入门_自然语言处理入门指南
  4. 直线的两点式、一般式以及点到直线的垂点
  5. python pptx表格里的字体怎么调整_在python pptx中更改序列填充颜色
  6. 动态规划: 投资分配问题
  7. java millis_Java Duration.getMillis方法代码示例
  8. vue x 兼容iphone_【前端vue系列】初始化一个vue工程
  9. linux下yum安装maven
  10. Android Paint中setTextSize