import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import java.io.*;
import java.util.Iterator;
/**
* Created by IntelliJ IDEA.
* User: tedeyang
* Date: 2009-6-4
* Time: 17:06:12
* To change this template use File | Settings | File Templates.
*/
public class ReadExcel {
public static void main(String[] args) throws Exception {
if(args.length<2)
new ReadExcel("D:\\Documents\\工作文档\\技术组\\考核\\技术使用调查\\", "result.xls");
else
new ReadExcel(args[0],args[1]);
}
Workbook book;
Sheet sheet;
ReadExcel(String fileDir, String resultFile) throws Exception {
File result = new File(fileDir, resultFile);
FileOutputStream out = new FileOutputStream(result);
book = new HSSFWorkbook();
sheet = book.createSheet();
File[] xlss = new File(fileDir).listFiles(new FilenameFilter() {
public boolean accept(File f, String s) {
//read xls
return (s.startsWith("实际开发技术调查表")) ;
}
});
int i = 1;
for(File f :xlss){
parseXls(f, sheet, i++);
}
book.write(out);
out.close();
}
/**
* This method is used to display the Excel content to command line.
*/
@SuppressWarnings("unchecked")
public void parseXls(File f, Sheet sheet, int i) throws Exception {
String depart = "";
InputStream inputStream = new FileInputStream(f);
POIFSFileSystem fileSystem = new POIFSFileSystem(inputStream);
HSSFWorkbook workBook = new HSSFWorkbook(fileSystem);
HSSFSheet s = workBook.getSheetAt(0);
Iterator rows = s.rowIterator();
String name = s.getRow(2).getCell(2).toString();
String n = f.getName();
name = n.substring(n.indexOf('-')+1,n.indexOf('.'));
setCellValue(0,i,name);
int count = 0;
System.out.println("人员:"+name);
while (rows.hasNext()) {
HSSFRow row = (HSSFRow) rows.next();
Iterator cells = row.cellIterator();
while (cells.hasNext()) {
HSSFCell cell = (HSSFCell) cells.next();
if (cell.getColumnIndex() < 2 || cell.getRowIndex() < 4) continue;
HSSFRichTextString richTextString = cell.getRichStringCellValue();
//create
if (cell.getCellType()==HSSFCell.CELL_TYPE_STRING) {
++count;
setCellValue(count,0,richTextString.getString());
setCellValue(count,i,value(cell));
}
}
}
inputStream.close();
}
private void setCellValue(int r, int c, String name) {
if(sheet.getRow(r)==null){
sheet.createRow(r).createCell(c).setCellValue(name);
}else if(sheet.getRow(r).getCell(c)==null){
sheet.getRow(r).createCell(c).setCellValue(name);
}else{
sheet.getRow(r).getCell(c).setCellValue(name);
}
}
private void setCellValue(int r, int c, double v) {
if(sheet.getRow(r)==null){
sheet.createRow(r).createCell(c).setCellValue(v);
}else if(sheet.getRow(r).getCell(c)==null){
sheet.getRow(r).createCell(c).setCellValue(v);
} else{
sheet.getRow(r).getCell(c).setCellValue(v);
}
}
private double value(HSSFCell cell) {
int color = cell.getCellStyle().getFillForegroundColor();
switch (color) {
case 42: //main use
return 5;
case 55: //a little
return 1;
case 23:
return 0; //never
default:
return 0;
}
}
}
偶然翻到以前为自己办公方便写的小程序,记录一下,因为POI的API用起来不是很直观。
分享到:
相关推荐
POI生成Excel POI读取Excel java操作Excel Servlet生成Excel web项目,包含含读取Excel与生成Excel方法
使用poi读取excel内容 所需jar包
poi excel poi excel poi excel poi excel poi excel poi excel poi excel poi excel
利用POI读取excel写入到word 利用POI读取excel写入到word 利用POI读取excel写入到word,压缩包里包含了jar包
poi 操作excel模板,读取数据后,讲数据填充到新生成的文件中且提供下载
NULL 博文链接:https://yxhcquedu.iteye.com/blog/828707
1、POI_EXCEL包下分别有两个类,一个是读取excel内容,一个是想excel写入内容 2、cn.itcast包下的所有包,是为了实现从excel写入到数据库中,和从数据库写入到excel中 注意事项: 1、需要导入maven工程 2、使用...
读取Excel的poi包,,读取Excel的poi包,,读取Excel的poi包,读取Excel的poi包读
使用Poi读取大数据量excel的方法 支持2003和2007的版本
Poi excel 读取模板, 复制sheet表 表里面对行的复制的整合 如果看了还有不明白的地方,请留言,谢谢!
JAVA IO操作 POI读取excel的内容
阐述如何用POI来读取/写入完整的Excel文件。
java读取excel 表格数据。 public static void main(String[] args) { String[][] content=POIExcelUtils.read("E:\\1.xlsx"); for(int i=0;i;i++) { if(content[i]!=null){ for(int j=0;j[i].length;j...
使用poi从数据库导出excel表的示例
利用POI进行多张Excel表的合并。附源代码。
poi读取excel并输出到jsp页面
poi excel通过模板导出excel表格 且带有公式 导出的excel表格里面的公式均可计算 有简单的公式也有难的公司 在此例子里面都可以跟着excel一起到处并可计算
使用poi解析excel文件,并将数据写入到数据库 项目说明 这个项目实现的功能是读取excel文件中的数据,解析并写入数据库。 读取的excel文件位于项目目录下的 excel\0805.xlsx 使用IntelliJ IDEA开发此项目 使用MYSQL...
POI读取excel的例子
android5使用poi读取excel,android5使用poi读取excel,android5使用poi读取excel,android5使用poi读取excel