poi创建excel文件

package com.mozq.sb.file01.test;

import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.*;

public class Excel_01 {
    public static void main(String[] args) throws IOException {
        HSSFWorkbook workbook = new HSSFWorkbook();
        HSSFSheet sheet = workbook.createSheet("创建sheet页");

        //默认的列宽度8字符
        System.out.println(sheet.getDefaultColumnWidth());

        //设置默认列宽和默认行高
        sheet.setDefaultColumnWidth(20);
        sheet.setDefaultRowHeightInPoints((short) 20);

        //存储最大列宽
        Map<Integer,Integer> maxWidth = new HashMap<>();
        maxWidth.put(0, getLength("错误行"));
        maxWidth.put(1,getLength("Excel表格导入错误消息"));
        for (Integer key : maxWidth.keySet()) {
            System.out.println(key + ":" + maxWidth.get(key));
            sheet.setColumnWidth(key, maxWidth.get(key));
        }

        HSSFRow sheetTitle = sheet.createRow(1);
        //创建

        HSSFRow row = sheet.createRow(2);//创建行
        //设置行高
        row.setHeightInPoints(30);

        HSSFCell cell = row.createCell(0);
        cell.setCellValue("错误行");
        cell.setCellStyle(getTitleCellStyle(workbook));//设置样式

        HSSFCell cell1 = row.createCell(1);
        cell1.setCellValue("Excel表格导入错误消息");
        cell1.setCellStyle(getTitleCellStyle(workbook));//设置样式

        //-------------打印内容
        List<String[]> content = new ArrayList<>();
        content.add(new String[]{"第1行", "电话号码格式错误"});
        content.add(new String[]{"第2行", "用户信息不存在"});

        for (int i = 0; i < content.size(); i++) {
            HSSFRow dataRow = sheet.createRow(i + 3);
            String[] strs = content.get(i);
            for (int j = 0; j < strs.length; j++) {
                HSSFCell posCell = dataRow.createCell(j);
                posCell.setCellValue(strs[j]);
                posCell.setCellStyle(getTextCellStyle(workbook));
                System.out.println(strs[j]);
            }
        }

        FileOutputStream fileOutputStream=new FileOutputStream("E:\\00\\3.xls");
        workbook.write(fileOutputStream);
        fileOutputStream.close();
    }

    public static Integer getLength(String content){
        Integer length =  0;
        if(Objects.nonNull(content)){
           length =  content.getBytes().length * 2 * 230;
        }
        return length;
    }

    //创建标题栏通用样式
    public static HSSFCellStyle getTitleCellStyle(HSSFWorkbook workbook){
        /* 对齐方式 */
        HSSFCellStyle cellStyle= workbook.createCellStyle();  //设置样式
        //水平居中
        cellStyle.setAlignment(CellStyle.ALIGN_CENTER);
        //垂直居中
        cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);

        /* 边框设置 */
        cellStyle.setBorderTop(CellStyle.BORDER_THIN);
        cellStyle.setBorderRight(CellStyle.BORDER_THIN);
        cellStyle.setBorderBottom(CellStyle.BORDER_THIN);
        cellStyle.setBorderLeft(CellStyle.BORDER_THIN);

        /* 字体样式 */
        HSSFFont font = workbook.createFont();
        //字体颜色
        font.setColor(HSSFColor.DARK_BLUE.index);
        //字体高度
        font.setFontHeightInPoints((short) 14);
        //字体
        font.setFontName("宋体");
        //加粗
        font.setBoldweight(Font.BOLDWEIGHT_BOLD);

        cellStyle.setFont(font);
        return cellStyle;
    }

    //创建标题栏通用样式
    public static HSSFCellStyle getTextCellStyle(HSSFWorkbook workbook){
        /* 对齐方式 */
        HSSFCellStyle cellStyle= workbook.createCellStyle();  //设置样式
        //水平居中
        cellStyle.setAlignment(CellStyle.ALIGN_CENTER);
        //垂直居中
        cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);

        /* 边框设置 */
        cellStyle.setBorderTop(CellStyle.BORDER_THIN);
        cellStyle.setBorderRight(CellStyle.BORDER_THIN);
        cellStyle.setBorderBottom(CellStyle.BORDER_THIN);
        cellStyle.setBorderLeft(CellStyle.BORDER_THIN);

        /* 字体样式 */
        HSSFFont font = workbook.createFont();
        //字体颜色
        font.setColor(HSSFColor.BLACK.index);
        //字体高度
        font.setFontHeightInPoints((short) 14);
        //字体
        font.setFontName("宋体");
        //字体加粗
        //font.setBoldweight(Font.BOLDWEIGHT_BOLD);
        cellStyle.setFont(font);
        return cellStyle;
    }
}

原文地址:https://www.cnblogs.com/mozq/p/12069467.html

时间: 2024-08-14 00:02:09

poi创建excel文件的相关文章

java使用poi创建excel文件

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 org.apache.poi.poifs.filesystem.POIFSFileSystem; 注:此方法创

用POI创建Excel文件及下载

POIExcelUtils.java: package com.saicfc.pmpf.internal.manage.utils; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.Calendar; import java.util.Iterator; import java.util.LinkedHashMap; import java.uti

使用poi创建Excel文件

通过Poi操作Excel十分方便,将一个Excel抽象为一个Workbook,一个表单页抽象为Sheet,表单中的一行抽象为Row,一行中的一个单元格可以抽象为Cell.HSSF对应的是97-03格式(.xls),XSSF对应的是07格式的(.xlsx). Workbook的获取有以下几种方式: 1.可以通过WorkbookFactory,工厂方法 Workbook wb=WorkbookFactory.create(new FileInputStream(file));//可以读取xls格式或

java使用POI操作excel文件,实现批量导出,和导入

一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Excel 95及以后的版本,即可操作后缀为 .xls 和 .xlsx两种格式的excel. POI全称 Poor Obfuscation Implementation,直译为"可怜的模糊实现",利用POI接口可以通过JAVA操作Microsoft office 套件工具的读写功能.官网:htt

java使用POI实现excel文件的读取,兼容后缀名xls和xlsx

需要用的jar包如下: 如果是maven管理的项目,添加依赖如下: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </depen

(5) 如何用Apache POI操作Excel文件-----发现Apache的POI的Bug后,如何给Apache的POI报Bug?

在我上篇文章中,(4) 如何用Apache POI操作Excel文件-----发现了POI-3.12一个回归,通过测试POI-3.12的版本,我发现了一个bug,那么发现bug后,该如何处理.我们有2种处理方式,首先我们到Apache POI的bug库里面搜索,看别人有没有创建类似的bug,如果有创建的,这个是最好的结果,我们只需要关注这个bug什么时候被修复.如果没有搜索不到,这个时候我们就需要给Apache POI报bug了.那么,如何给Apache报Bug? 第一步: 打开https://

java使用Apache POI操作excel文件

官方介绍 HSSF is the POI Project's pure Java implementation of the Excel '97(-2007) file format. XSSF is the POI Project's pure Java implementation of the Excel 2007 OOXML (.xlsx) file format. 从官方文档中了解到:POI提供的HSSF包用于操作 Excel '97(-2007)的.xls文件,而XSSF包则用于操作

POI生成EXCEL文件

POI生成EXCEL文件 一.背景 根据指定格式的JSON文件生成对应的excel文件,需求如下 支持多sheet 支持单元格合并 支持插入图片 支持单元格样式可定制 需要 标题(title),表头(head),数据(data) ,表尾(foot) 明确区分 二.效果预览 三.数据格式 由于是生成Excel文件,这里值考虑生成xlsx格式的Excel文件,数据多表头默认考虑使用 | 表示,不在使用colspan rowspan作为.如需要表示两列两行,第一列合并表头格式为: A|B,A|C生成的

jxl创建Excel文件java代码示例

记得要下载 并 导入 jxl.jar 包,免积分下载地址:http://download.csdn.net/detail/u010011052/7561041 package Test; import java.io.*; import jxl.*; import jxl.format.Colour; import jxl.write.*; public class JXLTest { private static WritableWorkbook book; private static Wr