JAVA-创建Excel 将List<HashMap<K, V>>写入Excel 转换成excel 读取本地文件excel转字节流转string
创始人
2024-03-25 17:01:40
0

博客背景:JAVA项目,将数据库内容读取创建Excel存到指定位置~

文章目录

    • 一、创建Excel
        • 1、XSSFWorkbook
        • 2、XSSFSheet
        • 3、设定存储位置
        • 4、所需数据转换
        • 5、数据赋值
        • 6、File、 FileOutputStream
    • 二、读取文件

一、创建Excel

1、XSSFWorkbook

创建一个工作蒲;

2、XSSFSheet

创建一个表格,可以设置其中的行宽高、字体等等;

3、设定存储位置

positon为文件存储位置,可以直接设置位置为磁盘中指定位置;如下默认为项目运行的上一级目录;

4、所需数据转换

maps是从数据库中取出的List>类型的数据;

5、数据赋值

读取maps循环赋值;

6、File、 FileOutputStream

使用File、 FileOutputStream创建excel文件

代码如下:

public void createExcel() {String positon = "../test.xlsx";List> maps = testMapper.getTestInfo();// 定义一个新的工作簿XSSFWorkbook wb = new XSSFWorkbook();// 创建一个Sheet页,命名为firstXSSFSheet sheet = wb.createSheet("first");//设置行高sheet.setDefaultRowHeight((short) (2 * 256));//设置列宽sheet.setColumnWidth(0, 4000);sheet.setColumnWidth(1, 4000);sheet.setColumnWidth(2, 4000);XSSFFont font = wb.createFont();//设置字体font.setFontName("宋体");font.setFontHeightInPoints((short) 16);//获得表格第一行XSSFRow row = sheet.createRow(0);//根据需要给第一行每一列设置标题XSSFCell cell = row.createCell(0);cell.setCellValue("Name");cell = row.createCell(1);cell.setCellValue("Sex");cell = row.createCell(2);cell.setCellValue("Age");cell = row.createCell(3);XSSFRow rows;XSSFCell cells;//循环拿到的数据给所有行每一列设置对应的值for (int i = 0; i < maps.size(); i++) {// 在这个sheet页里创建一行rows = sheet.createRow(i + 1);nHashMap map = maps.get(i);// 该行创建一个单元格,在该单元格里设置值String name = map.get("name").toString();String sex = map.get("sex").toString();Long age = 0L;cells = rows.createCell(0);cells.setCellValue(taskName);cells = rows.createCell(1);cells.setCellValue(domain);cells = rows.createCell(2);cells.setCellValue(age);}try {//创建文件的路径File file = new File(positon);FileOutputStream fileOutputStream = new FileOutputStream(file);//将创建的表格写入wb.write(fileOutputStream);wb.close();fileOutputStream.close();} catch (IOException e) {e.printStackTrace();}}

二、读取文件

读取本地文件,将其转成字节流 , 再转成string格式输出
positon为文件存储位置,可以直接设置位置为磁盘中指定位置;如下默认为项目运行的上一级目录;

代码如下:

String positon =  "../test.xlsx";
//读取文件
InputStream is = new FileInputStream(positon);
int iAvail = is.available();
//转为字节流
byte[] bytes = new byte[iAvail];
is.read(bytes);
//转成string
String table = new String(bytes);

参考:
https://www.cnblogs.com/mythz/p/14177739.html
https://blog.csdn.net/qq_39898191/article/details/104500896

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...