java 写 excel

引用jar

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.9</version>
</dependency>
<dependency>
     <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.9</version>
</dependency>
<dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.3</version>
</dependency>

http://jakarta.apache.org/poi/ 这个是官方的文档

You'd use HSSF if you needed to read or write an Excel file using Java (XLS). You'd use XSSF if you need to read or write an OOXML Excel file using Java (XLSX). The combined SS interface allows you to easily read and write all kinds of Excel files (XLS and XLSX) using Java. Additionally there is a specialized SXSSF implementation which allows to write very large Excel (XLSX) files in a memory optimized way.

这句话详细介绍了上面两个jar包的用处。如果想让excel的后缀是 XLSX 就是用 ooxml的包,使用SXSSF类来写。否则使用另外的jar.

使用方法

       try (HSSFWorkbook hssfWorkbook = new HSSFWorkbook()) {
            HSSFSheet sheet = hssfWorkbook.createSheet(bizPushEnum.getBizName() + "每日对比差异订单");

            HSSFRow titleRow = sheet.createRow(0);
            titleRow.createCell(0).setCellValue("订单ID");
            titleRow.createCell(1).setCellValue("门店ID");
            titleRow.createCell(2).setCellValue("错误类型");
            
            hssfWorkbook.write(byteArrayOutputStream);
        } catch (IOException e) {
            LOGGER.error("func=createExcel 生成excel报错 ", e);
        }

其中记得关闭流

合并单元格

private void createTitleRow(HSSFSheet sheet) {
        String title = StringUtil.format("{}每日对比差异订单。日期:{}。如有问题请联系siwenbin。", bizPushEnum.getBizName(), DateTime.now().toString("yyyyMMdd"));
        sheet.createRow(0).createCell(0).setCellValue(title);
        sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 2));
    }

要使用样式

http://www.bijishequ.com/detail/570413

https://www.cnblogs.com/zuge/p/5908861.html

要用JavaExcel图形,可以使用Apache POI库来操作Excel文件。以下是一个简单的示例代码,用于创建一个Excel文件并在其中添加一个简单的图形: ```java import java.io.FileOutputStream; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.*; public class ExcelGraph { public static void main(String[] args) throws Exception { // 创建一个新的Excel文件 XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet("Graph"); // 定义数据 double[] values = {1, 2, 3, 4, 5, 6}; String[] labels = {"A", "B", "C", "D", "E", "F"}; // 创建图形数据 XDDFNumericalDataSource<Double> x = XDDFDataSourcesFactory.fromArray(values); XDDFNumericalDataSource<Double> y = XDDFDataSourcesFactory.fromArray(values); XDDFChartData.Series series = new XDDFChartData.Series(x, y); // 添加标签 series.setTitle("Data", new XDDFDataSourcesFromStrings(labels), 0); // 创建图形 XDDFChart chart = new XDDFChart(sheet.createDrawingPatriarch(), XDDFChart.DEFAULT_EMU_WIDTH, XDDFChart.DEFAULT_EMU_HEIGHT); // 设定图形类型 chart.createData(ChartTypes.LINE, null, null); // 设定图形数据 chart.setData(ChartDataFactory.fromChartSeries(series)); // 保存Excel文件 FileOutputStream fileOut = new FileOutputStream("Graph.xlsx"); workbook.write(fileOut); fileOut.close(); workbook.close(); } } ``` 需要注意的是,这个示例代码使用的是XSSF格式的Excel文件,如果需要使用HSSF格式的Excel文件,需要将XSSFWorkbook和XSSFSheet替换为HSSFWorkbook和HSSFSheet。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值