首页 > 其他分享 >使用POI导出数据到Excel

使用POI导出数据到Excel

时间:2023-03-11 14:44:37浏览次数:28  
标签:sheet Excel 导出 jar cs 参数 POI workbook font

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

相关文章

  • xlsx.full.min.js实现xlsx的导入与导出
    1.json转xlsx<htmllang="zh"><head><scriptsrc="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.3/jquery.min.js"></script><scriptsrc="htt......
  • 导出mesh网格
     usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.Text;usingUnityEditor;usingUnityEngine;///<summary>///导......
  • easyexcel填坑-校验表头为空,或者不符合预期
    背景:easyexcelv3.1.5实体类已经使用注解@ExcelProperty标注需要导入的属性正文开始关闭忽略空行,防止第一行是空跳过校验 ignoreEmptyRow(false)。此处如果未关闭,第......
  • 如何通过C++ 将数据写入 Excel 工作表
    直观的界面、出色的计算功能和图表工具,使Excel成为最流行的个人计算机数据处理软件。在独立的数据包含的信息量太少,而过多的数据又难以理清头绪时,制作成表格是数据管理的最......
  • Redis 数据导入导出
    一、redis-dump方式1、Ruby安装(RockyLinux9)dnf-yinstallrubyruby-devel2、修改Rubygems默认源#列出默认源gemsources#移除默认源gemsource......
  • Easyexcel导出多个表格
    Easyexcel导出多个表格ExcelWriterexcelWriter=null;try{excelWriter=EasyExcel.write(response.getOutputStream()).build();......
  • python读写excel文件调研
    xlrd、xlwt和openpyxl模块的比较:1)xlrd:对xls、xlsx、xlsm文件进行读操作–读操作效率较高,推荐2)xlwt:对xls文件进行写操作–写操作效率较高,但是不能执行xlsx文件3)ope......
  • Excel多线程导出大数据量
    以下是Java的EasyExcelAPI实现多线程Excel导出的demo。在这个demo中,我们使用EasyExcelAPI来导出Excel文件。我们将表头和内容定义为动态的,以便能够处理大量的数据。我......
  • CAD表格怎么转换成Excel表格?CAD表格转EXCEL步骤
    无论是建筑行业还是机械行业,设计师在CAD制图过程中会将项目重要数据以表格的形式插入到图纸中,常见的CAD表格有明细表、工序卡、图样目录等。可是CAD表格在进行数据查找的时......
  • C#使用NPOI生成Word文档的方法
    在此我们介绍以模板方式载入内容导出Word文档一、获取模板(XWPFDocumentdoc)1.首先获取模板,然后把获取的模板实例化为NPOI的文档对象进行操作:FileStreamstream=File.O......