首页 > 编程语言 >Java Workbook和XSSWorkbook 处理Excel

Java Workbook和XSSWorkbook 处理Excel

时间:2024-09-19 21:23:11浏览次数:10  
标签:文件 xlsx Excel cell workbook import Workbook XSSWorkbook

Java WorkbookXSSWorkbook 是 Apache POI 库中用于处理 Excel 文件的两个主要类。Apache POI 是一个流行的 Java API,用于读写 Microsoft Office 格式的文档,特别是 Excel(.xls 和 .xlsx)文件。下面将通过一些示例来展示如何使用这两个类处理 Excel 文件。

使用 HSSFWorkbook (处理 .xls 文件)

HSSFWorkbook 类用于处理旧版本的 Excel 文件(即 .xls 文件)。下面是一个简单的例子,演示如何创建一个新的 Excel 文件,并向其中添加数据。

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;

public class HSSFExample {
    public static void main(String[] args) {
        // 创建一个工作簿
        Workbook workbook = new HSSFWorkbook();
        
        // 创建一个工作表
        Sheet sheet = workbook.createSheet("示例表");
        
        // 创建一行
        Row row = sheet.createRow(0);
        
        // 创建单元格并设置值
        Cell cell = row.createCell(0);
        cell.setCellValue("Hello, World!");
        
        // 将工作簿写入文件
        try (FileOutputStream fileOut = new FileOutputStream("workbook.xls")) {
            workbook.write(fileOut);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用 XSSWorkbook (处理 .xlsx 文件)

XSSWorkbook 类用于处理新版的 Excel 文件(即 .xlsx 文件)。下面是一个类似的例子,但这次我们将创建一个 .xlsx 文件。

import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.*;

public class XSSFExample {
    public static void main(String[] args) {
        // 创建一个工作簿
        Workbook workbook = new XSSFWorkbook();
        
        // 创建一个工作表
        Sheet sheet = workbook.createSheet("示例表");
        
        // 创建一行
        Row row = sheet.createRow(0);
        
        // 创建单元格并设置值
        Cell cell = row.createCell(0);
        cell.setCellValue("Hello, World!");
        
        // 将工作簿写入文件
        try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
            workbook.write(fileOut);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

读取 Excel 文件

无论是 .xls 还是 .xlsx 文件,读取 Excel 文件的基本方法是相似的。这里提供一个通用的例子,展示如何读取一个 Excel 文件的内容。

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class ReadExcelExample {
    public static void main(String[] args) {
        try (FileInputStream fis = new FileInputStream(new File("workbook.xlsx"));
             Workbook workbook = new XSSFWorkbook(fis)) {
            
            // 获取第一个工作表
            Sheet sheet = workbook.getSheetAt(0);
            
            // 遍历每一行
            for (Row row : sheet) {
                // 遍历每个单元格
                for (Cell cell : row) {
                    switch (cell.getCellType()) {
                        case STRING:
                            System.out.print(cell.getStringCellValue() + "\t");
                            break;
                        case NUMERIC:
                            System.out.print(cell.getNumericCellValue() + "\t");
                            break;
                        default:
                            // 其他类型的单元格处理
                    }
                }
                System.out.println(); // 换行
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

这些示例展示了如何使用 Apache POI 库的基本功能来处理 Excel 文件。根据实际需求,可以扩展这些示例,实现更复杂的功能,比如格式化单元格、添加图表等。

标签:文件,xlsx,Excel,cell,workbook,import,Workbook,XSSWorkbook
From: https://blog.51cto.com/u_16694558/12059063

相关文章

  • VBA应用EXCEL公式
    '七个使用公式的例子''1、行标是变量的例子'2、列标用一维数组输入字符串做列标,行标是变量'3、用RC做相对引用'4、RC和变量混合'5、整列使用RC引用,避免使用循环'6、整个区域RC引用——相对引用/循环'7、整个区域RC应用——相对引用/不用循环Sub数例()[a1]="1a":[......
  • easyExcel导出大数据量EXCEL文件,前端实现进度条
    需求:页面点击导出,先按照页面条件去数据库查询,然后将查询到的数据导出。问题:由于查询特别耗时,所以点击之后页面会看上去没有反应,就在点击之后在页面增加了一个进度条,等待后盾查询结束之后,导出时,进度条会显示导出进度,导出结束之后进度条会消失。效果如下:注意点:后端需要在响应......
  • Python实现GUI小工具CSV文件转Excel
    目录专栏导读库的安装代码总结专栏导读......
  • 使用Python解决对比出两个Excel文件中的不同项并将结果重新写入一个新的Excel文件
    因为有统计成员到会情况的任务,每次汇总时都很麻烦,需要一个个对应腾讯会议导出名单的成员,然后在总表上进行标记,所以就写了本程序来减少统计的复杂度。使用xlrd和xlwt包首先安装两个包pipinstallxlrd==1.2.0pipinstallxlwt==0.7.5定义contrast函数defcontrast(processed_e......
  • Excel歪门邪道(1) — 用C#解决Excel修复文件后批注被删除的问题
    今天是2024年9月18日,中秋节刚过,狠下心来决定把原来发在CSDN的文章全部搬过来,倒不是因为文章被CSDN拿去白嫖或者是担心CSDN倒闭,而是觉得自己过去的29年生活自己活的像个小丑,如今已到而立之年被社会彻底淘汰已成定局,因此在离开这个世界之前,我还是决定把过往的一些没什么用的经验重新......
  • Excel 国产化替换新方案
    前言在当前数字化转型和信创(信息技术应用创新)战略背景下,企业对于安全性、自主可控性和高效办公工具的需求日益增加。作为一款国产自主研发的高性能表格控件,SpreadJS正成为替换Excel的最佳选择。它不仅全面支持国产化认证,还在多功能、跨平台适配、灵活定制、对接AI大模型等方面......
  • 不升级 POI 版本,如何生成符合新版标准的Excel 2007文件
    开心一刻记得小时候,家里丢了钱,是我拿的,可爸妈却一口咬定是弟弟拿的爸爸把弟弟打的遍体鳞伤,弟弟气愤的斜视着我我不敢直视弟弟,目光转向爸爸说到:爸爸,你看他,好像还不服问题描述项目基于POI4.1.2生成Excel2007文件,已经对接了很多客户,也稳定运行了好几年了;就在前两天,对接一个新的......
  • C#方法将数据库图片批量插入到EXCEL中
    效果图一般数据库图片查询出来为byte[]类型这里使用的是Spire.Officefor.NETnet4.0和net6.0可以使用附件的dll,其他版本可去官网下载相应的dll官方网站:https://www.e-iceblue.com/GitHub:https://github.com/eiceblueNuGet:https://www.nuget.org/packages/FreeSpire.Off......
  • 手把手教您把多个EXCEL表格合并成一个表格的技巧
    在工作中,我们经常需要把多个表格合并成一个表格,如果一个个表格打开复制、粘贴,确实太费时了,今天小编来教您一个简单的合并技巧。一、准备素材1、比如我们准备了三个表格,如图:2、打开表格后,可以看到每个表格中都有一个相同的标题,如图:3、操作前要先关闭已打开的表格,不然会被占用无法操......
  • 一款类excel可进行显示、在线编辑的纯js表格TableShow控件
        在进行前端显示设计时,传统的方法是以分页显示,逐条提取后修改及保存,非常不利于用户连贯阅读及在线修改。因此,本人将类似excel的一些table表格在线卷动显示、修改及集中保存功能进行了尝试,封装成了一个纯js控件,只通过一句代码进行调用,将数据库查询结果集进行显示和添......