POI生成excel表格——简单例子

2023-11-07

导入包 poi-2.5.1.jar

User类(提供数据用)

package com.xk.poi;

import java.util.ArrayList;
import java.util.List;

public class User
{
    private String firstname;
    private String lastname;
    private int age;

    public User()
    {
        
    }    
    
    public User(String firstname, String lastname, int age)
    {
        this.firstname = firstname;
        this.lastname = lastname;
        this.age = age;
    }
    
    public String getFirstname()
    {
        return firstname;
    }
    public void setFirstname(String firstname)
    {
        this.firstname = firstname;
    }
    public String getLastname()
    {
        return lastname;
    }
    public void setLastname(String lastname)
    {
        this.lastname = lastname;
    }
    public int getAge()
    {
        return age;
    }
    public void setAge(int age)
    {
        this.age = age;
    }
    
    public List<User> findAllUser()
    {
        User user1 = new User("张","无极",22);
        User user2 = new User("李","小龙",43);
        User user3 = new User("程","劲风",25);
        User user4 = new User("黄","容",34);
        
        List<User> list = new ArrayList<User>();
        
        list.add(user1);
        list.add(user2);
        list.add(user3);
        list.add(user4);
        return list;
    }
}



PoiTest类(生成Excel文件)


package com.xk.poi;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;

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;


public class PoiTest
{

    //将生成好的Excel文件,放到硬盘上

    public void writeToDisk()
    {

        HSSFWorkbook wb = new HSSFWorkbook();
        //生成一个sheet1
        HSSFSheet sheet = wb.createSheet("sheet1");
        //为sheet1生成第一行,用于放表头信息
        HSSFRow row = sheet.createRow(0);
        
        //第一行的第一个单元格的值为  ‘序号’
        HSSFCell cell = row.createCell((short)0);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16); //设置编码
        cell.setCellValue("序号");
        
        cell = row.createCell((short)1);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue("姓");
        
        cell = row.createCell((short)2);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue("名");
        
        cell = row.createCell((short)3);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue("年龄");
        
        User u = new User();
        
        List<User> list = u.findAllUser();
        //获得List中的数据,并将数据放到Excel中

        for(int i=0;i<list.size();i++)
        {
            User user = list.get(i);

           //数据每增加一行,表格就再生成一行             

            row = sheet.createRow(i+1);
            //第一个单元格,放序号随着i的增加而增加           

            cell = row.createCell((short)0);
            cell.setEncoding(HSSFCell.ENCODING_UTF_16);
            cell.setCellValue(i+1);
            //第二个单元格放firstname
            cell = row.createCell((short)1);
            cell.setEncoding(HSSFCell.ENCODING_UTF_16);
            cell.setCellValue(user.getFirstname());
            //第三个单元格放lastname
            cell = row.createCell((short)2);
            cell.setEncoding(HSSFCell.ENCODING_UTF_16);
            cell.setCellValue(user.getLastname());
            //第四个单元格放age
            cell = row.createCell((short)3);
            cell.setEncoding(HSSFCell.ENCODING_UTF_16);
            cell.setCellValue(user.getAge());
            
        }
        
        
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        try
        {
            wb.write(os);
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        
        byte[] content = os.toByteArray();
        
        File file = new File("c:/text.xls");//Excel文件生成后存储的位置。
        
        OutputStream fos  = null;
        
        try
        {
            fos = new FileOutputStream(file);
            
            fos.write(content);

            os.close();

            fos.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }          
    }    
    
    public static void main(String[] args)
    {
        
        PoiTest pt = new PoiTest();
        pt.writeToDisk();
        
    }
}


运行结果:

C盘下生成了一个test.xls文件

里面的内容为:






本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

POI生成excel表格——简单例子 的相关文章

  • 将字符串拆分为字母数组 - 双字符字母 PHP

    我需要将一个字符串拆分为一个字母数组 问题是在我的语言 克罗地亚语 中也有双字符字母 例如 lj nj d 所以字符串如ljubi icajecvijet应该分成一个数组 如下所示 Array 0 gt lj 1 gt u 2 gt b 3
  • R: pi[[j]] 中的错误:下标越界——数据帧列表上的 rbind

    我正在尝试重新绑定一个大的数据帧列表 outputDfList 它是通过将一个复杂的函数应用于一个大表而生成的 您可以通过以下方式重新创建outputDfList df1 data frame randomseq chr15q22 1 tr
  • 如何确定子字符串是否在不同的字符串中[重复]

    这个问题在这里已经有答案了 我有一个子字符串 substring please help me out 我还有另一个字符串 string please help me out so that I could solve this 我如何找到
  • 将 SQL Server varBinary 数据转换为字符串 C#

    我需要帮助弄清楚如何转换来自SQL服务器表列设置为varBinary 最大 转换为字符串以便将其显示在标签中 这是在C 我正在使用数据读取器 我可以使用以下方式提取数据 var BinaryString reader 1 我知道该列包含之前
  • 如何在 apache poi 中找到包含图片的单元格

    我尝试在 xls 文档中循环图像 我写下一个代码 HSSFPatriarch patriarch sheet getDrawingPatriarch if patriarch null Loop through the objects fo
  • 如果单元格包含文本,则条件格式化整行

    我有一个 Excel 工作表 我正在尝试使用条件格式 但它似乎没有像我希望的那样工作 似乎任何公式都不起作用 因为我不希望单元格匹配 TBC 而是包含它 简而言之 我正在寻找这个 如果 D2 包含 TBC 则突出显示整行 我已经通过 Goo
  • std::string 到 LPCTSTR

    新版本典型问题如何转换而来std string to LPCTSTR 从不同的帖子中我了解到我应该这样做 CreateDirectory path c str NULL 编译器仍然给出错误 因为cannot convert from con
  • Python(openpyxl):将数据从一个excel文件转移到另一个(模板文件)并用另一个名称保存,同时保留模板

    我有一个templateexcel 文件名为template xlsx其中有许多张 我想从单独的地方复制数据 csv文件到第一页template xlsx 命名为data 并将新文件另存为result xlsx同时保留原来的模板文件 我想粘
  • 仅打印字符串中的元音

    我是Python新手 我正在尝试打印字符串中的所有元音 因此 如果有人输入 嘿 一切都好吗 所有元音都需要打印 但我不知道怎么做 所以这不是计算元音 而是打印元音 现在我已经得到了这个 sentence input Enter your s
  • 带参数的 Python 列表过滤

    python中有没有一种方法可以在列表上调用过滤器 其中过滤函数在调用期间绑定了许多参数 例如有没有办法做这样的事情 gt gt def foo a b c return a lt b and b lt c gt gt myList 1 2
  • 使用 System.out.println 显示特殊字符

    我在将带有特殊字符的文本从网络服务发送或显示到数据库时遇到问题 在我的 Eclipse 上 我已将字符编码设置为 UTF 8 但它仍然不允许我显示字符 例如 像下面的代码一样简单的打印 String test System out prin
  • 从另一个列表的元素创建一个新列表,引用后者的元素

    我想从前一个元素创建一个新列表 但不复制它们 这就是发生的事情 In 23 list range 10 In 24 list2 list 0 4 In 25 list Out 25 0 1 2 3 4 5 6 7 8 9 In 26 lis
  • 转置 CopyFromRecordset Excel VBA

    我的 Excel VBA 中有以下代码 可将 SQL 中的表中的数据复制到 Excel 中 该数据从单元格 C2 开始水平插入 但我希望将其垂直插入到 C 列 Sheets Control Range C2 CopyFromRecorset
  • 如何使用Python更改Excel中的列格式

    我想使用 openpyxl 方法将一张纸上的特定行和列复制到另一张纸上 但我的主要 Excel 文件是 xlsb 文件 而 openpyxl 不支持 xlsb 文件 所以我构建了这种复杂的方式 根据公司规则 我无法从 Microsoft E
  • 在自记录 f 字符串中的等号后插入换行符[重复]

    这个问题在这里已经有答案了 在python3 8中 一个新特性是自记录格式字符串 https docs python org 3 whatsnew 3 8 html f strings support for self documentin
  • 在 AT&T x86 程序集中查找转义字符

    问题一 我有以下汇编代码 其目的是循环输入字符串 并计算它遇到的转义字符 的数量 globl sprinter data escape string string num escape long 0 num characters long
  • 如何在C中将一个字符串拆分为2个字符串

    我想知道如何获取 1 个字符串 用分隔符 例如空格 将其拆分为 2 个字符串 并将这 2 个部分分配给 2 个单独的字符串 我尝试过使用strtok 但无济于事 include
  • 列表中小于给定数字的数字

    xMenores xMenores X H T R Z xMenores X T Z X gt H R is H xMenores采用三个参数 第一个是数字 第二个是数字列表 第三个是一个列表 是将包含结果的变量 规则的目标xMenores
  • 从 .Net 将简单数据插入 Excel 文件的最简单方法

    我有一个 Excel 文件 大约有 10 列和 1 20 行 我需要插入 1 20 行包含各种数据元素 我想知道是否有一种方法可以将一些标签放入 Excel 文件中 以便可以找到并替换它们 将列标记为 名称 的东西 这样我就可以在代码中说
  • 如何循环浏览文件夹内所有工作簿中的所有工作表

    我使用宏对计算机上给定文件夹中每个工作簿的每张工作表进行更改 事件顺序 打开用户选择的文件夹中的每个 Excel 文件 在工作簿中的每个工作表上执行任务 保存文件 关闭工作簿 宏不起作用 问题似乎是由Selection AutoFilter

随机推荐

  • 个人知识体系思维导图_职场必备思维导图:提升能力、知识体系、决策思维、领导力......

    图片来源 图虫创意 让你快速成长的职场思维 思维导图 MBA智库文档 你需要具备哪些技能 1 你需要建立系统的思维方式和做事方法 2 你需要了解不管是口碑还是硬广渠道的推广效果 3 你需要有管理能力 很好的沟通能力 4 你需要具备总结分析的
  • js刷新当前页面的5种方式

    1 reload reload 方法 该方法强迫浏览器刷新当前页面 语法 location reload bForceGet 参数 bForceGet 可选参数 默认为 false 从客户端缓存里取当前页 true 则以 GET 方式 从服
  • 设计模式之状态模式

    一 背景 状态这个词汇我们并不陌生 在日常生活中 不同时间就有不同的状态 早上起来精神饱满 中午想睡觉 下午又渐渐恢复 晚上可能只想睡觉 这就对应着一天中不同的状态 二 定义 状态 State 模式的定义 对有状态的对象 把复杂的 判断逻辑
  • Rancher 2.2.2 - HA 部署高可用k8s集群

    对于生产环境 需以高可用的配置安装 Rancher 确保用户始终可以访问 Rancher Server 当安装在Kubernetes集群中时 Rancher将与集群的 etcd 集成 并利用Kubernetes 调度实现高可用 为确保高可用
  • 已知两点经纬度,计算两点间的距离

    通过两点的经纬度计算两点之间的距离 def getDistance lng1 lat1 lng2 lat2 param lng1 A点的经度 param lat1 A点的纬度 param lng2 B点的经度 param lat2 B点的纬
  • 房屋交接时需要注意些什么?

    在房屋交接时应该注意以下几点 一 进行水电煤气抄表 并计算金额 确定上下家各自承担的份额 上下家应在双方交接房屋时做好此项工作 以免交房后双方就这些小费用产生扯皮 二 办理有线电视的结算和更名手续 买卖双方在房屋买卖交易后一般不会忘了结算水
  • C++ 学习之旅(1)——编译器Compiler

    简单来说 由C 代码文件生成可执行文件的过程如下 mermaid svg GQamCVEXMVkYEemz font family trebuchet ms verdana arial sans serif font size 16px f
  • C语言字符串的经典例题

    1 统计单词的个数 include
  • 《编程珠玑》--读书笔记12章:取样问题

    第十二章 作者提出了一个问题 程序的输入包含两个整数m和n 其中m lt n 输出是0 n 1范围内的m个随机整数 不允许重复 有两种方法达到目的 1 思路 从r个剩余的整数中选出s个 以概率s r来选择下一个数 比如 m 2 n 5 选择
  • SaaS企业怎么做决策

    帆软会议室的墙上出现了 永不上市 利润分享 的字样 所有参观的SaaS创业者都被这八个字吸引 纷纷拿出手机拍照 帆软创始人薛宝表示 在帆软全国30多家办公室的墙上都贴着这8个大字 2006年 帆软用薛宝仅有的5000元积蓄创办了这家公司 从
  • linux进程及进程间同步通信机制

    进程 一 进程的存储器安排 这是 UNIX环境高级编程 中介绍的典型存储器安排 但现实也不一定非要如此 对于c c 来说 数据的存储方式还是认为3种 堆 栈 全局数据区 包括全局数据 静态数据 常量 二 僵尸进程和孤儿进程 进程在终止前向父
  • shiro基础

    shiro基础 shiro中有三大核心架构 subjects security manager realms 分别代表 使用shiro的主体 核心安全管理器和数据和安全管理的连接 使用shiro首先需要引入shiro需要的依赖 可以通过ma
  • 前端如何进行用户权限管理

    1 问题 假如在做一个管理系统 面向老师学生的 学生提交申请 老师负责审核 或者还需要添加其他角色 功能权限都不同 现在的问题是 每种角色登录看到的界面应该都是不一样的 那这个页面的区分如何实现呢 2 要不要给老师和学生各自设计一套页面 这
  • [论文阅读]《Database Maanagement Systems》-第九章

    第九章 TREE STRUCTURED INDEXING 树结构索引 P271 301 gracefully 优雅的 适当的 because it adjusts well to changes 因为它能很好地适应变化 page bound
  • 2013年11月21日星期四(地图)

    初始 DDraw BOB bob BOB textures tool mytool char buffer 80 BITMAP FILE bitmap8bit int world x 0 current position of viewin
  • 【vue2对接萤石云接口,实现摄像头直播页面的调取显示】

    vue2对接萤石云接口 实现摄像头直播页面的调取显示 使用ezuikit js插件 accessToken url 附上最新代码和demo 公司前端vue项目需要实现萤石云接口对接 买好萤石摄像头 注册萤石云账号并将设备添加到萤石云平台 开
  • 端口被占用怎么办?关闭占用端口的进程

    当你发现某个端口被占用时 但不知道是哪一个进程占用了端口 需要关闭占用该端口的进程 1 启动系统命令行 windows系统 win r 2 输入命令 netstat ano 可查看所有端口的使用情况 netstat aon findstr
  • Buck电路

    如果我们希望得到一个20V的直流电压源 我们能想到什么办法 很简单 从220V市电开始 通过变压器降压得到有效值为20V的电压 通过整流桥整流得到不稳定的直流电 接着用一个大的电解电容滤波 就可以得到20V的电压 那么如果我们现在希望得到一
  • 微信python小课_微信上其实还有很多你不知道的事,Python微信平台开发编写实录...

    本文主要讲述如何利用Python开发微信公众平台 说明 如果你是Python小白 爬虫小白 觉得本节课程的代码晦涩难懂 没关系 不需要懂 按照步骤一步步操作就可以了 这一节我们主要是搭框架 几乎没有真正的爬虫代码 这些代码和操作 你可能一生
  • POI生成excel表格——简单例子

    导入包 poi 2 5 1 jar User类 提供数据用 package com xk poi import java util ArrayList import java util List public class User priv