精华内容
下载资源
问答
  • 2022-03-12 19:42:18

    第一步:先导入依赖。

            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi</artifactId>
                <version>4.1.1</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>4.1.1</version>
            </dependency>

    简单案例

    package com.maxinyang.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.ss.util.CellRangeAddress;
    import org.apache.poi.ss.util.WorkbookUtil;
    
    import java.io.*;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     *
     *  无样式 无图片 导出xls 案例;
     * 作者:killgod
     * 口号:天王盖地虎
     */
    public class Excel {
        public static void main(String[] args) {
            /**
             * 模拟数据库数据
             */
            List<User> users = new ArrayList<>();
            users.add(new User("老马1","18","河南洛阳"));
            users.add(new User("老马2","18","河南洛阳"));
            users.add(new User("老马3","18","河南洛阳"));
            users.add(new User("老马4","18","河南洛阳"));
            users.add(new User("老马5","18","河南洛阳"));
            users.add(new User("老马6","18","河南洛阳"));
            users.add(new User("老马7","18","河南洛阳"));
            users.add(new User("老马8","18","河南洛阳"));
            users.add(new User("老马9","18","河南洛阳"));
            users.add(new User("老马10","18","河南洛阳"));
            /**
             *创建HSSFWorkbook对象(excel的文档对象),本实例是导出扩张名为xls(office2003)。
             * 如果需要导出扩展名xlsx(office2007以后版本),只需要把文中HSSF改为XSSF即可,
             * 如      HSSFWorkbook改为XSSFWorkbook。
             */
            HSSFWorkbook wb = new HSSFWorkbook();
            HSSFSheet userTable = wb.createSheet("用户表");
    
            /**
             *  HSSFRow 代表行   0 = 表的第一行
             *  HSSFCell 代表列  0 = 第一行第一列
             *  注意 : 单元行单元列下标从零开始
             */
            HSSFRow row0 = userTable.createRow(0);
            HSSFCell cell0 = row0.createCell(0);
            // 设置内容
            cell0.setCellValue("用户表格一览");
            // 合并单元格 起始行 截至列 起始列 截至行
            userTable.addMergedRegion(new CellRangeAddress(0,0,0,4));
    
    
            //设置单元列名
            HSSFRow row1 = userTable.createRow(1);
            row1.createCell(0).setCellValue("姓名");
            row1.createCell(1).setCellValue("年龄");
            row1.createCell(2).setCellValue("住址");
    
    
            //  循环内容
            for (int i = 0; i < users.size(); i++) {
                User user = users.get(i);
                HSSFRow row = userTable.createRow(i + 2);
                row.createCell(0).setCellValue(user.getName());
                row.createCell(1).setCellValue(user.getAge());
                row.createCell(2).setCellValue(user.getAddress());
    
            }
    
            try {
                // 文件名称
                String fileName = System.currentTimeMillis() + ".xls";
                FileOutputStream fileOutputStream = new FileOutputStream("F:\\学习测试文件\\execl\\" + fileName);
                wb.write(fileOutputStream);
                fileOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    }
    

    如何修改单元格样式:

    详情可以借鉴: Java导出Excel(Poi详解)_养只狗名叫猫-CSDN博客_poi导出excel

    更多相关内容
  • java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。
  • poi导出excel demo

    2017-10-21 11:40:29
    poi导出excel demo,poi导出excel demo,poi导出excel demo,poi导出excel demo,poi导出excel demo,
  • Poi导出Excel工具类

    2019-01-07 13:12:49
    Poi导出Excel工具类 支持大数据量 多sheet页方式 已经封装好,直接拿来调用里面的方法传入参数就行 很简单
  • poi导出excel

    2017-07-05 14:28:52
    poi导出excel工具类,参考代码
  • apache poi 导出excel、word,替换word内容,导出word-文本、图片、表格
  • Java利用poi导出excel表格.zipJava利用poi导出excel表格.zip
  • Java利用poi导出excel表格
  • 利用POI实现Java导出Excel表格,为了实现以后通用,做成了一个利用Java的反射机制做成的万金油式工具类,只需要给工具类传入固定的几个参数(映射字段的map集合,数据集合,实体类的Claas等),就可以实现导出Excel,该...
  • 使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用
  • POI导出Excel工具类,自动设置标题 列名 文件名,可插入图片,合并单元格
  • POI导出Excel表格

    2017-11-13 20:29:42
    该实例集成maven开发环境,里面讲解了POI导入和导出Excel表格的基本用法
  • JAVA POI导出EXCEL代码

    2016-12-21 14:08:40
    JAVA POI导出EXCEL代码
  • 主要介绍了Java Web使用POI导出Excel的方法,结合实例形式详细分析了Java Web使用POI导出Excel的具体操作步骤、实现技巧与相关注意事项,需要的朋友可以参考下
  • apache POI 导出Excel 设置打印 打印区域 打印方向 缩放比例 水平居中
  • 主要为大家详细介绍了Java poi导出Excel下载到客户端的相关方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • * 这是一个通用的方法,利用了JAVA的反射机制,可以将放置在JAVA集合中并且符号一定条件的数据以EXCEL 的形式输出到指定IO设备上 * * @param title * 表格标题名 * @param headers * 表格属性列名数组 ...
  • java poi导出excel

    2018-04-09 09:51:15
    里面是完整的java程序,导入可执行,根据数据生成excel文件,http://localhost:8080/poi/export
  • 主要为大家详细介绍了Springboot POI导出Excel,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • poi导出excel进行了二次封装,封装后只需要使用模板导出excel就可以了,简单易用,example包里面有几个实例,可以看看,该工程已经上传到github上了,有兴趣的同学可以一起来改进它,...
  • poi作为导出excel常用的工具,方便快捷。对于excel指定下拉列表的列,如何生成呢?本文提供如何生成下拉列表的excel列
  • poi导出excel表格

    2018-03-26 09:35:14
    web网页导出excel表格,不必生成excel实体文件,减少垃圾文件的产出
  • Java POI 导出Excel 2007简单实例源代码 该源代码的jar包,Java POI导出EXCEL经典实现
  • java的poi的导入工具类,只需要传入两个arrayList,一个是execl的标题,一个是ececl的数据,就可以直接导出到execl里面,支持最新的execl,全新封装的,让每一个人都会使用poi导出execl!
  • Java中使用POI导出excel文件

    千次阅读 2021-03-18 22:29:10
    Java中使用POI导出excel文件前言需要的jar包上代码使用JDBC连接数据库获取导出的数据MySQL数据库表结构实体类代码DBHelper连接MySQL数据库数据操作Dao类导出excel文件的工具类代码运行测试代码运行结果总结 ...

    前言

    在系统开发中最常用的功能就是列表数据的导出了,Java中常用的方法是用apache的POI进行操作的,现在我们就一起来学习下POI导出excel文件的基本用法。

    需要的jar包

    上代码

    使用JDBC连接数据库获取导出的数据

    MySQL数据库表结构

    实体类代码

    package com.cgp.excelexport.pojo;
    
    public class Person {
    
        private Long id;
    
        private String name;
    
        private int age;
    
        private String phone;
    
        public Long getId() {
            return id;
        }
    
        public void setId(Long id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public String getPhone() {
            return phone;
        }
    
        public void setPhone(String phone) {
            this.phone = phone;
        }
    
        @Override
        public String toString() {
            return "Person{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    ", age=" + age +
                    ", phone='" + phone + '\'' +
                    '}';
        }
    }
    
    

    DBHelper连接MySQL数据库

    package com.cgp.excelexport.utils;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    
    public class DBHelper {
    
        //MySQL数据库驱动
        private static final String driver = "com.mysql.jdbc.Driver";
    
        //数据库连接地址
        private static final String url = "jdbc:mysql://localhost:3306/test_1?useUnicode=true&characterEncoding=UTF-8";
    
        //数据库用户名
        private static final String username = "root";
    
        //数据库密码
        private static final String password = "root";
    
        //声明数据库连接对象
        private static Connection conn = null;
    
        //静态代码块先加载驱动
        static {
            try {
                Class.forName(driver);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
    
        //创建数据库连接,供外部调用
        public static Connection getConnection() throws Exception
        {
            if(conn==null)
            {
                //连接数据库
                conn = DriverManager.getConnection(url, username, password);
                return conn;
            }
            return conn;
        }
    }
    
    

    这里有静态代码块,静态方法和静态的常量,小伙伴们可以思考下这三个在类中加载顺序,在下面的评论区互相讨论下。

    数据操作Dao类

    package com.cgp.excelexport.dao;
    
    import com.cgp.excelexport.pojo.Person;
    import com.cgp.excelexport.utils.DBHelper;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.ArrayList;
    import java.util.List;
    
    public class PersonDao {
    
        private static Connection conn = null;
    
        private static PreparedStatement pst = null;
    
        private static ResultSet rs = null;
    
        public List<Person> getPersonList() {
            List<Person> list = new ArrayList<>();
            try {
                conn = DBHelper.getConnection();
                String sql = "select * from person";
                pst = conn.prepareStatement(sql);
                rs = pst.executeQuery();
                while (rs.next()) {
                    Person person = new Person();
                    person.setId(rs.getLong(1));
                    person.setName(rs.getString(2));
                    person.setAge(rs.getInt(3));
                    person.setPhone(rs.getString(4));
                    list.add(person);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return list;
        }
    

    我这里使用最原始的JDBC来连接数据库,大家现实开发中会用到mybatis这种持久化框架,请以实际开发为准。

    导出excel文件的工具类代码

    package com.cgp.excelexport.utils;
    
    import com.cgp.excelexport.pojo.Person;
    import org.apache.poi.ss.usermodel.*;
    import org.apache.poi.xssf.streaming.SXSSFWorkbook;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.List;
    
    public class ExportExcelUtil {
    
        public static void ExportExcel(List<Person> list, String[] titles) {
            SXSSFWorkbook wb = new SXSSFWorkbook(100);
            Sheet sheet = wb.createSheet();
            Row row = sheet.createRow(0);
            //给单元格设置样式
            CellStyle cellStyle = wb.createCellStyle();
            Font font = wb.createFont();
            //设置字体大小
            font.setFontHeightInPoints((short) 12);
            //设置字体加粗
            font.setBold(true);
            //给字体设置样式
            cellStyle.setFont(font);
            //设置单元格背景颜色
            cellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
            //设置单元格填充样式(使用纯色背景颜色填充)
            cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
            for (int i = 0; i < titles.length; i++) {
                Cell cell = row.createCell(i);
                cell.setCellValue(titles[i]);
                cell.setCellStyle(cellStyle);
                //设置列的宽度
                sheet.setColumnWidth(i, 200*50);
            }
            for (int j = 0; j < list.size(); j++) {
                Row rowData = sheet.createRow(j + 1);
                Person person = list.get(j);
                Cell cell = rowData.createCell(0);
                cell.setCellValue(person.getId());
                Cell cell2 = rowData.createCell(1);
                cell2.setCellValue(person.getName());
                Cell cell3 = rowData.createCell(2);
                cell3.setCellValue(person.getAge());
                Cell cell4 = rowData.createCell(3);
                cell4.setCellValue(person.getPhone());
            }
            String fileName = "D:/人员信息导出.xlsx";
            try {
                FileOutputStream fileOutputStream = new FileOutputStream(fileName);
                wb.write(fileOutputStream);
                wb.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    

    运行测试代码

    package com.cgp.excelexport.test;
    
    import com.cgp.excelexport.dao.PersonDao;
    import com.cgp.excelexport.pojo.Person;
    import com.cgp.excelexport.utils.ExportExcelUtil;
    
    import java.util.List;
    
    public class ExportExcelTest {
    
        public static void main(String[] args) {
            PersonDao personDao = new PersonDao();
            List<Person> list = personDao.getPersonList();
            String[] titles = {"编号","姓名","年龄","手机号"};
            ExportExcelUtil.ExportExcel(list, titles);
            System.out.println("人员数据导出成功!");
        }
    }
    
    

    运行结果



    可以看出excel文件成功的导出到了D盘目录下面

    总结

    以上就是Java中使用JDBC连接数据库获取表数据,使用POI导出excel文件的基本方法,本文仅供参考,请以实际开发业务为准!

    展开全文
  • Java Poi 导出excel(支持各种设置字体、颜色、垂直居中)
  • 本篇文章主要介绍了Springboot使用POI实现导出Excel文件示例,非常具有实用价值,需要的朋友可以参考下。
  • java poi 导出excel jar包

    2016-01-21 15:29:59
    java poi 导出excel jar包
  • 主要介绍了POI通用导出Excel(.xls,.xlsx)的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,552
精华内容 11,820
关键字:

poi导出excel