创建excel文件
java
package com.bjpowernode.crm.poi;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class CreateExcel {
public static void main(String[] args) throws IOException {
//创建HSSFWordbook对象,对应一个Excel文件
HSSFWorkbook wb = new HSSFWorkbook();//
//使用wb创建HSSFSheet对象,对应wb文件的中的一页
HSSFSheet sheet = wb.createSheet("学生列表");
//使用sheet创建HSSFRow对象,对应sheet中的一行
HSSFRow row = sheet.createRow(0);//行号,从0开始,一次递增
//使用rwo创建HSSFCell对象,对应row中的列
HSSFCell cell = row.createCell(0);//列号,从0开始,一次递增
//他贵儿勒个有点神,变量名字可以重复
cell.setCellValue("学号");
cell = row.createCell(1);
cell.setCellValue("姓名");
cell = row.createCell(2);
cell.setCellValue("年龄");
//生成HSSFCellStyle对象
//居中样式
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
//使用sheet创建10个HSSFRow对象,对应sheet中的10行
for (int i = 1; i < 10; i++) {
row = sheet.createRow(i);
cell = row.createCell(0);
cell.setCellValue(100+i);
cell = row.createCell(1);
cell.setCellValue("NAME"+i);
cell = row.createCell(2);
cell.setCellStyle(style);
cell.setCellValue(20+i);
}
//调用工具函数生成excel文件
//文件可以不创建,但是目录必须存在
OutputStream os = new FileOutputStream("D:\\dev.kai\\crm项目工具\\客户端已经有的文件\\studentList.xls");
wb.write(os);
//关闭资源
os.close();
wb.close();
System.out.println("====creatOk");
}
}
运行结果
解析excel文件
java
package com.bjpowernode.crm.poi;
import com.bjpowernode.crm.commons.utils.HSSFUtils;
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 java.io.FileInputStream;
/**
* 使用apache-poi解析excel文件
*/
public class ParseExcelTest {
public static void main(String[] args) throws Exception {
//根据excel文件生成HSSFWorkbook对象,封装了excel文件的所有信息
FileInputStream is = new FileInputStream("D:\\dev.kai\\crm项目工具\\服务器端生成的excel文件\\studentList.xls");
HSSFWorkbook wb = new HSSFWorkbook(is);
//根据wb获取HSSFSheet对象,封装了一页的所有信息
HSSFSheet sheet = wb.getSheetAt(0);//页的下标,下标为0开始时,依次递增
//根据sheet获取HSSFRow对象,封装了一行的所有信息
HSSFRow row =null;
HSSFCell cell=null;
for (int i = 0; i <= sheet.getLastRowNum(); i++) {//sheet.getLastRowNum();最后一行的下标
row= sheet.getRow(i);//行的下标,下标从0开始,依次增加
for (int j = 0; j < row.getLastCellNum(); j++) {//row.getLastCellNum();最后一列的下标+1
//根据row获取HSSFCell对象,封装了一列的所有信息
cell = row.getCell(j);
//获取列中的数据
System.out.print(HSSFUtils.getCellValueForStr(cell)+" ");
}
//每一行中所有列都打完,打印一个换行
System.out.println();
}
}
}