1.引入poi jar包
2.1创建一个Excel空文档
package com.ctsi.qam;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import java.io.File;
import java.io.IOException;
public class poitest {
public static void main(String[] args) throws IOException {
createExcel();
}
public static void createExcel() throws IOException {
//生成文档对象
HSSFWorkbook book=new HSSFWorkbook();
//指定文档写出的路径
File file=new File("D://poi//poiExcle.xls");
//写出对象到指定路径
book.write(file);
}
}
2.2写入相对应的数据(先获取表对象,在获取行对象,最后是单元格对象)
package com.ctsi.qam;
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.File;
import java.io.IOException;
public class poitest {
public static void main(String[] args) throws IOException {
createExcel();
}
public static void createExcel() throws IOException {
//创建工作薄对象
HSSFWorkbook book=new HSSFWorkbook();
//获取表对象(Sheet对象)后面参数是表明,可以不写
HSSFSheet sheet= book.createSheet("测试表");
//有了表格然后从表对象中获取行--0下表代表第一行
HSSFRow row= sheet.createRow(0);
//从第一行的行对象中获取第一个单元格
HSSFCell cell=row.createCell(0);
//写入数据
cell.setCellValue("集团");
File file=new File("D://poi//poiExcle1.xls");
//输入一个空表格
book.write(file);
}
}
2.2.1
package com.ctsi.qam;
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.File;
import java.io.IOException;
public class poitest {
//假数据
private static String[] header={"姓名||业绩","一季度","二季度","三季度","四季度"};
private static String[][] data={{"张三","2","3","5","50"},{"里斯","2","23","5","51"},{"王五","2","3","5","512"}};
public static void main(String[] args) throws IOException {
createExcel();
}
public static void createExcel() throws IOException {
//创建工作薄对象
HSSFWorkbook book=new HSSFWorkbook();
//获取表对象(Sheet对象)后面参数是表明,可以不写
HSSFSheet sheet= book.createSheet("测试表");
//有了表格然后从表对象中获取行--0下表代表第一行
HSSFRow row= sheet.createRow(0);
HSSFCell cell=null;
//向第一行中写入数据
for (int i = 0; i < header.length; i++) {
cell=row.createCell(i);
cell.setCellValue(header[i]);
}
//循环写入数据
for (int i = 0; i < data.length; i++) {
//从第二行开始写
row=sheet.createRow(i+1);
for (int j = 0; j < data[i].length; j++) {
cell=row.createCell(j);
//第一个写入字符串
//之后写入数字加个判断(实际看情况)
if (j==0){
cell.setCellValue(data[i][j]);
}else {
//字符串转成double
cell.setCellValue(Double.parseDouble(data[i][j]));
}
}
}
File file=new File("D://poi//poiExcle1.xls");
//输入一个空表格
book.write(file);
}
}
2.3调整样式(设置行高等参数),数据都在表格中,所以通过sheet设置
package com.ctsi.qam;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.*;
import java.io.File;
import java.io.IOException;
public class poitest {
//假数据
private static String[] header={"姓名||业绩","一季度","二季度","三季度","四季度"};
private static String[][] data={{"张三","2","3","5","50"},{"里斯","2","23","5","51"},{"王五","2","3","5","512"}};
public static void main(String[] args) throws IOException {
createExcel();
}
public static void createExcel() throws IOException {
//创建工作薄对象
HSSFWorkbook book=new HSSFWorkbook();
//创建样式对象
HSSFCellStyle cellStyle = book.createCellStyle();
//设置水平居中
cellStyle.setAlignment(HorizontalAlignment.CENTER);
//设置垂直居中
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
//设置字体大小
HSSFFont font = book.createFont();
font.setFontHeightInPoints((short) 11);
font.setFontName("宋体");
cellStyle.setFont(font);
//设置单元格边框
cellStyle.setBorderTop(BorderStyle.THIN);
cellStyle.setBorderBottom(BorderStyle.THIN);
cellStyle.setBorderLeft(BorderStyle.THIN);
cellStyle.setBorderRight(BorderStyle.THIN);
//到这里只是设置样式 必须下面引用才可以
//创建一个新的样式和上面不一样这个是填充颜色
HSSFCellStyle cellStyle_red = book.createCellStyle();
//复制上面的样式
cellStyle_red.cloneStyleFrom(cellStyle);
//添加填充颜色
//首先有填充图案(颜色对应的值直接百度)
cellStyle_red.setFillPattern(FillPatternType.SOLID_FOREGROUND);
//必须先设置前置颜色才能设置背景颜色
cellStyle_red.setFillForegroundColor((short) 10);
cellStyle_red.setFillBackgroundColor((short) 10);
//获取表对象(Sheet对象)后面参数是表明,可以不写
HSSFSheet sheet= book.createSheet("测试表");
//设置样式
//设置列宽和行高(如果不显示就是覆盖了,再下面row上再单独设置即可)
sheet.setDefaultColumnWidth(16);
sheet.setDefaultRowHeightInPoints(27L);
//有了表格然后从表对象中获取行--0下表代表第一行
HSSFRow row= sheet.createRow(0);
HSSFCell cell=null;
//向第一行中写入数据
for (int i = 0; i < header.length; i++) {
cell=row.createCell(i);
//引入自定义样式
cell.setCellStyle(cellStyle);
cell.setCellValue(header[i]);
}
//循环写入数据
for (int i = 0; i < data.length; i++) {
//从第二行开始写
row=sheet.createRow(i+1);
for (int j = 0; j < data[i].length; j++) {
cell=row.createCell(j);
//引入自定义样式
cell.setCellStyle(cellStyle);
//第一个写入字符串
//之后写入数字加个判断(实际看情况)
if (j==0){
cell.setCellValue(data[i][j]);
}else {
//字符串转成double
cell.setCellValue(Double.parseDouble(data[i][j]));
//大于10就设置红色
if (Double.parseDouble(data[i][j])>10){
cell.setCellStyle(cellStyle_red);
}
}
}
}
File file=new File("D://poi//poiExcle1.xls");
//输入一个空表格
book.write(file);
}
}