Java将数据写入Excel

2023-10-27

引入Maven依赖:

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

Java将数据写入Excel,把这个方法封装了WriteToExcel

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class WriteToExcel {

    private static XSSFWorkbook workbook;
    private static XSSFSheet sheet;
    private static XSSFRow row;
    private static XSSFCell cell;
    private static File file;

    //创建sheet页
    public static void setSheet(String sheetName) {
        workbook = new XSSFWorkbook();
        sheet = workbook.createSheet(sheetName);
    }
    //创建表头
    public static void createHead(List<String> headList) {
        //创建表头,也就是第一行
        row = sheet.createRow(0);
        for (int i = 0; i < headList.size(); i++) {
            cell = row.createCell(i);
            cell.setCellValue(headList.get(i));
        }
    }
    //创建表内容
    public static void createContent(List<List<String>> contentList) {
        //创建表内容,从第二行开始
        for (int i = 0; i < contentList.size(); i++) {
            row = sheet.createRow(i + 1);
            for (int j = 0; j < contentList.get(i).size(); j++) {
                row.createCell(j).setCellValue(contentList.get(i).get(j));
            }
        }
    }
    //写入文件
    public static void writeToFile(String filePath){
        file = new File(filePath);
        //将文件保存到指定的位置
        try {
            workbook.write(new FileOutputStream(file));
            System.out.println("写入成功");
            workbook.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    // 内容测试数据
    protected static List<List<String>> getContent() {
        List<List<String>> contentList = new ArrayList<>();
        List<String> content1 = new ArrayList<>();
        content1.add("张三");
        content1.add("18");
        List<String> content2 = new ArrayList<>();
        content2.add("李四");
        content2.add("20");
        contentList.add(content1);
        contentList.add(content2);
        return contentList;
    }
    
    public static void main(String[] args) {
        //表头测试数据
        List<String> headList = new ArrayList<>();
        headList.add("昵称");
        headList.add("年龄");
        List<List<String>> contentList = getContent();//内容测试数据

        setSheet("WorkSheet");                        //创建sheet页
        createHead(headList);                         //设置表头
        createContent(contentList);                   //设置内容
        writeToFile("D://work.xls");         //写入文件
    }
}

(一)Java读取Excel表的数据

Java读取Excel表的数据_追求卓越583的博客-CSDN博客

参考:Java怎么将数据写入Excel_芝士炸香蕉的博客-CSDN博客_java写入excel文件

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

Java将数据写入Excel 的相关文章

  • 如何默认将 Maven 插件附加到阶段?

    我有一个 Maven 插件应该在编译阶段运行 所以在项目中consumes我的插件 我必须做这样的事情
  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • 如何在 Play java 中创建数据库线程池并使用该池进行数据库查询

    我目前正在使用 play java 并使用默认线程池进行数据库查询 但了解使用数据库线程池进行数据库查询可以使我的系统更加高效 目前我的代码是 import play libs Akka import scala concurrent Ex
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for
  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 将 MS 转换为秒

    我发现这个公式可以用来将 MS 转换为秒 但它是为 Excel 2002 编写的 而我正在使用 2010 CONCATENATE TEXT INT B1 1000 86400 hh mm ss B1 INT B1 1000 1000 以下是
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O

随机推荐

  • UE中FRotator和Pitch(Roll,Yaw)以及相对朝向的关系

    前几天 看人宅的塔防视频教程 他使用了塔的成员变量rotator 我可能在哪里少写了 所以 老是朝向不对 跟踪调试了下 发现FRotator是由pitch roll yaw三个部分组成 而pitch roll yaw是局部坐标系中的朝向 那
  • 雷达水位计安装细节注意点

    近年来 随着国家防汛抗旱工作对中小河流水文监测的要求不断提高 许多流域及大中型水库 电站逐步建立了水情自动测报系统 而水位监测则是测报系统的重要组成部分 水位传感器的适用性是建立系统的重要因素 随着自动测报系统的发展 各类水位传感器在不同的
  • 卡特尔16PF性格测试与答案

    大学生在职业生涯规划时 必须充分注意到自己的性格和职业的适宜性 性格是指一个人在生活中形成的对现实的稳定的态度和行为方式 研究表明 性格影响着一个人的职业取向 由于性格的不同 每个人对工作和职业的态度也是不同的 一定的性格必然适合从事一定的
  • Java多线程实现

    Java多线程 多线程的创建方式 方式一 继承Thread类 创建一个继承Thread类的子类 重写Thread类中的run方法 创建Thread子类对象 通过此对象调用start 方法 public class ThreadDemo1 p
  • 蓝桥杯超时?给你一些小技巧

    自己在敲代码的时候碰到了超时的情况 总结了一下 1 统一定义变量 不要在循环内定义局部变量 2 把函数定义放在main函数之前 可以减少在main函数内的声明 3 循环尽量增设break条件 对循环进行剪枝可以减少不必要循环 4 尽量省略头
  • Django框架 - 路由配置全解

    Django框架学习笔记 路由配置全解 文章目录 1 初始配置 2 路由配置 2 1 一般路由 命名路由与reverse 函数 2 2 子路由 命名空间与reverse 函数 2 3 带参路由 reverse 函数 自定义path转换器 2
  • LeetCode周赛159

    1232 Check If It Is a Straight Line 检查是否为直线 暴力算斜率 但要注意分母为0的情况 class Solution public bool checkStraightLine vector
  • 重新审视Faster RCNN:优缺点与改进

    重新审视Faster RCNN Faster RCNN优点 Faster RCNN缺点 对于Faster RCNN的改进算法 特征融合 HyperNet 实例分割 Mask RCNN 全卷机网络 R FCN 级联网络 Cascade RCN
  • 使用Qt实现简单的日志记录功能(qInstallMessageHandler)

    前言 相信大家在软件开发的过程中 都有记录软件运行日志的需求 凭借日志信息来分析软件的运行状况 或者是查找 定位软件存在的未知Bug 基于C 的日志工具有log4cplus log4cxx Log4Qt等 但如果只是并非复杂的环境使用 其实
  • ubuntu18.04安装后没有wifi图标,并且无法安装wifi驱动

    网上绝大部分的解决方案是安装wifi驱动 当你发现无法安装wiifi驱动时 可以试试这个办法 1 给笔记本电脑插入网线 联网 或着采用手机USB网络共享功能 给笔记本联网 2 打开 软件与更新 选择更新源 将软件更新一下 在 开发者选项 那
  • 软件工程综合实训日志

    前期准备阶段 1 注册 heroku com 在注册heroku时需要爬墙 2 注册github 在注册github时 由于电脑网络问题出现注册不成功 还有密码问题一定不要设置自己最常用的数字 不然也会注册不成功 3 安装git bash
  • Win 2003系统传真功能的配置及使用

    传真在现 公中应用极为广泛 随着电脑的普及 我们可用电脑方便地进行传真的收发 下面以Windows 2003系统为例介绍其传真的使用 供需要的朋友参考 注意 首先要正确安装了调制解调器 并确保您的调制解调器支持传真功能 操作系统 Windo
  • 汇编指令之MOV

    汇编指令之 MOV 传送字或字节 学习来自 汇编语言MOV指令 mov指令详解 Assembly Addressing Modes 汇编用户指南 MOV 简单格式 mov dst src 扩展格式1 MOV S cond Rd Operan
  • Dynamic Hierarchical Reasoning with Language Model and Knowledge Graph for Question Answering

    本文是LLM系列文章 针对 Dynamic Hierarchical Reasoning with Language Model and Knowledge Graph for Question Answering 的翻译 DRLK 基于语
  • Python中XGBoost的特性重要性和特性选择

    使用像梯度增强这样的决策树方法的集合的一个好处是 它们可以从经过训练的预测模型中自动提供特征重要性的估计 在这篇文章中 您将发现如何使用Python中的XGBoost库估计特性对于预测建模问题的重要性 读完这篇文章你就会知道 如何使用梯度增
  • 深度学习进入芯片领域,揭秘寒武纪神经网络处理器

    深度学习进入芯片领域 揭秘寒武纪神经网络处理器 2016 03 16 19 34 原创 铁流 10条评论 就在全世界媒体的焦点锁定于谷歌AlphaGo连续3盘战胜李世石的同时 中国科学院计算技术研究所陈云霁 陈天石课题组提出的深度学习处理器
  • 自动化测试一套完整的解决方案:自动化测试工具Python3.6.3 + Robot Framework3.1.2 环境搭建

    自动化测试Python3 6 3 Robot Framework3 1 2 环境搭建 一 环境搭建 简单介绍 Robot Framework是一个基于Python可扩展地关键字驱动的测试自动化框架 使用Apache License 2 0
  • IDEA项目打包几种方式

    IDEA项目打包几种方式 第一种 最常见的使用maven 项目的pom文件中引入spring boot maven plugin插件
  • 获取第几天时间的日期

    获取过去第几天的日期 param past return public static String getPastDate int past Calendar calendar Calendar getInstance DAY OF YEA
  • Java将数据写入Excel

    引入Maven依赖