0.准备工作
自行去apache的maven仓库查找以下关于poi的依赖(x.x为版本号)
1.poi-x.x.jar
2.poi-ooxml-x.x.jar
3.xmlbeans-x.x.x.jar
4.poi-ooxml-schemas-x.x.jar
5.poi-ooxml-full-x.x.x.jar(可选)
6.dom4j-x.x.x.jar
1. 获取Excel表格对象
//1.1创建workbook对象时可以填写已知文件的路径作为参数,否则会新建一个文件出来
//*.xlsx
XSSFWorkbook workbook = new XSSFWorkbook();
//*.xls
Workbook workbook = new HSSFWorkbook();
2.写入数据
//1.获取sheet对象
//1.1方法一:创建一个新的sheet进行操作
Sheet sheet = workbook.createSheet("test");
//1.2方法二:操作已经存在的sheet
//如果操作的是已经存在的excel,可以使用下面的方法直接获取sheet对象进行后续操作
workbook.getSheet("");//参数为sheet名
workbook.getSheetAt(1);//参数为Excel打开时sheet的索引,从0开始
//2.获取行对象
//方法一:
Row row = sheet.createRow(0);//参数为行号,从0开始
//方法二:
Row row = sheet.getRow(0);//参数为行号,从0开始
//3.获取单元格对象
Cell cell = row.createCell(0);//参数为列索引,从0开始
//4.写入数据
//可以使用重载方写入不同类型的数据
cell.setCellValue();
//5.保存数据
workbook.write(new FileOutputStream("./test.xlsx"));
3.行高列宽
//3.1设置列宽(此处填写的列宽*270差不多才是excel显示的正常列宽)
sheet.setColumnWidth(ColIndex, width);//参数1:列索引,参数2:列宽
//3.2设置行高
sheet.setDefaultRowHeightInPoints(20);
4.单元格样式
//1.字体大小
XSSFFont font = workbook.createFont();
font.setFontHeight(14);
//2.字体样式
font.setFontName("等线");
//3.字体颜色(使用GUI的Color类设置16进制颜色值)
font.setColor(new XSSFColor(Color.decode("0x990000")));
//4.垂直居中
CellStyle cs = workbook.createCellStyle();
cs.setVerticalAlignment((short)1);
//5.水平居中
cs.setAlignment(HSSFCellStyle.ALIGN_CENTER);
//6.单元格边框
cs.setBorderBottom(HSSFCellStyle.BORDER_THIN);
cs.setBorderTop(HSSFCellStyle.BORDER_THIN);
cs.setBorderLeft(HSSFCellStyle.BORDER_THIN);
cs.setBorderRight(HSSFCellStyle.BORDER_THIN);
//7.为指定单元格设置颜色和字体
cs.setFont(font);
cell.setCellStyle(cs);
//8.为货币数据指定格式
CellStyle currencyStyle = cs;
XSSFDataFormat df = workbook.createDataFormat();
currencyStyle.setDataFormat(df.getFormat("#,###.00"));
5.其他操作
//1.不显示分页符(分页视图中的蓝色虚线)
sheet.setFitToPage(true);
//2.设置页面布局为分页视图
CTSheetView view = sheet.getCTWorksheet().getSheetViews().getSheetViewList().get(0);
view.setView(STSheetViewType.PAGE_BREAK_PREVIEW);
//3.设置分页符(打印内同由第一行开始,到分页符所在的那一行结束,.分页视图中出现蓝色虚线
sheet.setRowBreak(10);
sheet.setAutobreaks(true);
//插入一行(插入后下面的行会下移,下移后空出来的就是想要插入的行)
sheet.shiftRows(1,1,1);//参数1:下移部分的起始行,参数2:下一部分的结束行,参数3:下移行数
标签:sheet,Excel,导出,jar,cs,参数,POI,workbook,font
From: https://www.cnblogs.com/W82838/p/16990716.html