- 6
- 0
- 约1.3万字
- 约 11页
- 2017-05-12 发布于湖北
- 举报
软件工程毕业实习日期要点,土木工程毕业实习报告,工程造价毕业实习报告,环境工程毕业实习报告,土木工程毕业实习日记,工程管理毕业实习报告,软件工程毕业实习报告,建筑工程毕业实习报告,通信工程毕业实习报告,工程造价毕业实习总结
第一周
2013/02/17-2013/02/21
这一周我学习了如何用java操作excel,通过编写代码来读取excel文档中的内容,并把读取到的内容存成想要的数据结构。
要读取excel文档,或者说要读取office办公软件的各类文档,需要用到Apache POI。Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 我主要学习了如何读取excel。
在公司的实际的开发中,表现层的解决方案虽然有多样,但是IE浏览器已成为最多人使用的浏览器,因为大家都用Windows。在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统、银行系统)。或者是:我们已经习惯用Excel打印。在生成报表的时候就会用到Apache POI。
一个Excel文件对应于一个workbook(HSSFWorkbook),一个workbook可以有多个sheet(HSSFSheet)组成,一个sheet是由多个row(HSSFRow)组成,一个row是由多个cell(HSSFCell)组成。我们可以根据需要,传入待读取文件的路径(默认路径为当前的项目所在文件夹),文件名,想要读取的哪一个sheet页下的哪一行的哪一个单元格,这时候就能够获取这一单元格的内容。
在编写代码时,先要build PATH,把POI的jar包导入到工程(jar包可以从互联网获取)。导入后就可以使用POI中的各种方法了。首先,把待读取文件的路径传进去,这时候要判断一下待读取的excel是什么版本的,是office2003还是office2007,可以根据文件的后缀名来判断,office2003版本的excel文件的后缀名是xls,office2007版本的excel文件的后缀名是xlsx,然后建立输入流,把待读取文件的路径传进去,这样就得到了这个文件,然后创建一个Workbook对象,根据判断的结果来进行初始化,如果是2003,则创建XSSFWorkbook的对象来初始化Workbook对象,2007则创建HSSFWorkbook的对象来初始化Workbook对象。此时,这个excel文档就传了进来,我们可以调用Workbook对象的各种方法来读取它了。接下来可以用Workbook对象的getSheetAt()方法来获得它的某一个sheet页,使用getRow()方法获得某一行,使用getCell()方法获得某一个单元格。在使用单元格内的内容时,要注意数据类型。如果搞错了数据类型,程序将遇到异常。特别地,用HSSF处理日期数据要小心。Excel内部以数值的形式保存日期数据,区别日期数据的唯一办法是通过单元格的格式。对于包含日期数据的单元格,cell.getCellType()将返回HSSFCell.CELL_TYPE_NUMERIC,不过利用工具函数HSSFDateUtil.isCellDateFormatted(cell)可以判断出单元格的值是否为日期。isCellDateFormatted函数通过比较单元格的日期和Excel的内置日期格式得出结论,很多时候isCellDateFormatted函数会返回否定的结论,存在一定的误判可能。?
核心代码:
public static void main(String[] args) {
readXml(D:/test.xlsx);
System.out.println(-------------);
readXml(d:/test2.xls);
}
public static void readXml(String fileName){
boolean isE2007 = false; //判断是否是excel2007格式
if(fileName.endsWith(xlsx))
isE2007 = true;
try {
InputStream input = new FileInputStream(fileName); //建立输入流
Workbook wb = null; //根据文件格式(2003或者2007)来初始化
if(isE2007)
wb = new XSSFWorkbook(input);
else
wb = new HSSFWorkbook(input);
Sheet she
原创力文档

文档评论(0)