• 最近学院要举行科技报告会活动,许多同学积极参与,交了许多报名表到我这里,而我需要将这些信息进行汇总,整理出一个excel表格,看着一个个word文件放在我的工作文件夹中头发发麻,这一个个的整理好麻烦,不但速度慢而且容易出错,我就想用编程自动替我读取数据并写入目标文件。结果还真让我写成了,下面一一讲解步骤:

  • 问题描述:如下图所示,我需要提取姓名、学号、合作者、学院及专业、联系方式、指导老师、参选题目这几栏的信息。

  • 步骤一:下载POI插件
    POI:下载地址;我所使用的是poi-3.10-FINAL。建好java工程后右键点击,选择配置选项,按照下面图片步骤。


  • 使用方法

  • 代码解释

package readInformation;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;import org.apache.poi.POIXMLProperties.CoreProperties;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Paragraph;
import org.apache.poi.hwpf.usermodel.Range;
import org.apache.poi.hwpf.usermodel.Table;
import org.apache.poi.hwpf.usermodel.TableCell;
import org.apache.poi.hwpf.usermodel.TableIterator;
import org.apache.poi.hwpf.usermodel.TableRow;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;/** function:读取参赛作品登记表中的姓名、学号、联系方式、专业、合作者、参选题目、指导老师* * * 使用这段代码需要两个前提条件:*  1:加载poi-3.10-FINAL文件夹中的jar扩展包*  2:word版本必须在2007以上,格式和样本一样* 这两步可以看使用手册*/public class readFile {private static FileOutputStream out = null ;private static FileInputStream in = null ;private static String filePathDir = "C:\\Users\\wangjunzuo\\Desktop\\ll";  //word文件存放的文件夹 绝对路径public static HSSFWorkbook workbook = null;/** 进行文件的第一行便签写入,就是excel文件的第一行:姓名、学号、联系方式等等*/public static void creatLables(String[] labels,String worksheet) throws IOException {out = new FileOutputStream("result.xls"); workbook = new HSSFWorkbook();HSSFSheet sheet1 = workbook.createSheet(worksheet); HSSFRow rw = workbook.getSheet(worksheet).createRow(0);for(int i=0;i<labels.length;i++) {HSSFCell ce = rw.createCell(i);  ce.setCellValue(labels[i]);  }workbook.write(out);}/** 进行数据读取病写入文件中,采用的思路是将一个word文件中的内容用一个链表存储,链表的长度等于表格的格数* 然后再使用一个链表将每个文件对应的链表添加到里面,可以看成二维数组形式* 只要知道我们想要word文件中的那个单元内容,找到该单元对应的下标进行读取就行*/public static void writeToXls(String worksheet) throws IOException {ArrayList<ArrayList<String> > people = new ArrayList() ;FileOutputStream out = new FileOutputStream("result.xls");  //结果输出文件名File file = new File(filePathDir);File[] files = file.listFiles();  //获取文件夹下word文件名列表for(File a:files) {System.out.println(a.toString());in = new FileInputStream(a);   //依次读入每一个word文件XWPFDocument doc = new XWPFDocument(in);List<XWPFTable> tables = doc.getTables();for (XWPFTable table : tables) {List<XWPFTableRow> rows = table.getRows();   // 获取表格的行ArrayList<String> single = new ArrayList();  //储存每一表格的所有单元信息for (XWPFTableRow row : rows) {List<XWPFTableCell> tableCells = row.getTableCells();for (XWPFTableCell cell : tableCells) {String text = cell.getText();single.add(text);}//end for}//end forpeople.add(single);}//end for     }for(int i=0;i<people.size();i++) {/**这段代码用于检测自己想要单元的下标是否和计算机计算的一样 **for(int j=0;j<people.get(i).size();j++){System.out.println(people.get(i).get(j)+i+ "   "+ j);}*/HSSFRow rw = workbook.getSheet(worksheet).createRow(i+1);/** 由表格得知我们想要的数据分别为第1、11、5、9、7、17、13下标的内容* 下面代码创建一行,在该行上创建7个单元格,分别对应姓名、学号等*/HSSFCell ce = null;for(int k = 0 ; k < index.length;k++){ce = rw.createCell(k);  ce.setCellValue(people.get(i).get(index[k]));}workbook.write(out); }public static void main(String[] args) throws IOException {String[] label= {"姓名","学号","联系方式","专业","合作者","参赛题目","指导老师"};int index[] ={1、11、5、9、7、17、13};creatLables(label,"信息汇总");writeToXls("信息汇总");    in.close();out.close();}
}

有选择读取word表格中的数据并写入excel文件中相关推荐

  1. asp.net学习笔记·将数据库中的数据保存在EXCEL文件中

    提取数据库中的数据,将其保存在EXCEL文件中,并提供下载. 在一般处理程序中将数据库数据保存在EXCEL文件中的代码 using System; using System.Collections.G ...

  2. aspx页面中,DataTable中的数据导出到Excel文件中

    方法一:直接将DataTable中的数据通过GridView导出到Excel中,并显示下载界面 public void ExportToExcel(DataTable tab,string filen ...

  3. POI:从Excel文件中读取数据,向Excel文件中写入数据,将Excel表格中的数据插入数据库,将数据库中的数据添加到Excel表

    POI 简介: POI是Apache软件基金会用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能. ...

  4. 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)...

     本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较    (三)SSIS的简介    (四)数据库中存储过程示例(SSIS应用需要) (五)Excel模板的制作(这步这么简单,稍微介 ...

  5. 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】) 转...

    效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载])  本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较    ( ...

  6. 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中)

    转载:http://www.cnblogs.com/jasenkin/archive/2010/10/06/ssis_package_information.html 本文目录: (一)背景 (二)数 ...

  7. python爬虫爬取彩票中奖数字,简单计算概率并写入Excel文件中

    一.爬取网页数据所使用到的库 1.获取网络请求requests.BeautifulSoup2.写入excel文件openpyxl.pprint.column_index_from_string注意co ...

  8. python实现将数据写入Excel文件中

    将数据写入Excel文件中,用python实现起来非常的简单,下面一步步地教大家. 一.导入excel表格文件处理函数 import xlwt 注意,这里的xlwt是python的第三方模块,需要下载 ...

  9. matlab将求解值导出数据,MATLAB之将mat中的数据导出到Excel文件

    MATLAB之将mat中的数据导出到Excel文件 原始文档: https://www.yuque.com/lart/tools/cnedve 文章目录 MATLAB之将mat中的数据导出到Excel ...

最新文章

  1. scipy.cluster.vq.kmeans的使用
  2. Microsoft Operations Management Suite 集成 SCO
  3. Linux下connect超时处理
  4. mysql 数据目录迁移_MySQL数据库数据文件路径迁移步骤
  5. 【NOIP2013模拟联考5】军训(training)
  6. mysql mpm_zabbix mpm 监控 mysql性能
  7. IntelliJ Idea取消Colud not autowire.No
  8. c语言sort_C语言十大排序算法,让老师对你刮目相看的技巧
  9. Java学习笔记2.3.4 运算符与表达式 - 逻辑运算符
  10. 循环数组最大子段和--51nod1050
  11. SQL后计算的利器SPL
  12. hua图软件 mac_sai mac中文版|sai绘画软件 For Mac下载 v3.0 官方版 - 121苹果网
  13. syswow64删除文件_什么是SysWow64文件夹 SysWow64文件夹可以删除吗
  14. 链表的中间结点--快慢指针思想
  15. 盘点 9 款好用的开源商城系统
  16. PHP语言Web开发ThinkPhp6框架搭建
  17. 大学军训板报计算机学院,军训板报
  18. SparkContext的初始化(仲篇)——SparkUI、环境变量及调度
  19. 人际关系-《你为什么不道歉》书中的精髓:道歉对于人际关系的重要性,以及怎样传达有诚意、有深度的道歉。
  20. Navicat Premium 使用技巧

热门文章

  1. python写dnf游戏脚本辅助_利用Python自动化操作鼠标键盘刷金币,工作室都靠这种脚本搬砖!...
  2. BigDecimal比较大小equals和compareTo方法
  3. 德国计算机科学专业大学排名,2021德国计算机科学与技术专业大学排名TOP10
  4. 日本的feature phone版twitter的follow链接
  5. Android RSA公钥加密和私钥解密方法
  6. [穿衣搭配]魅惑蕾丝百变气质 - 韩式公主风
  7. 【Windows编程】Dll的注入与调用
  8. 《网上赚钱葵花宝典1.0完整版》
  9. python 一行代码(不包含导包)实现1到10的累加_笔试题汇总,含参考答案(持续更新中。。。)...
  10. C++程序设计原理与实践 习题答案 第十六章 第16章习题答案