浏览器生成Excel文件 ,Apache POI 使用方法及示例

这篇具有很好参考价值的文章主要介绍了浏览器生成Excel文件 ,Apache POI 使用方法及示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Apache POI 是 Apache 软件基金会的开源项目,它提供 API 用于读取和写入 Microsoft Office 格式的文件,如 Excel、Word 等。在 Spring Boot 应用中,结合使用 Apache POI 可以方便地处理 Excel 文件

一 引入依赖:
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>

二 读取Excel示例:

import org.apache.poi.ss.usermodel.*; // 导入Apache POI的通用接口  
import org.apache.poi.xssf.usermodel.XSSFWorkbook; // 导入用于处理.xlsx文件的类  
  
import java.io.File;  
import java.io.FileInputStream;  
import java.io.IOException;  
  
public class ExcelReader {  
  
    public static void main(String[] args) {  
        try (FileInputStream fis = new FileInputStream(new File("path/to/your/excel/file.xlsx"))) {  
            // 创建一个工作簿对象,从输入流中读取Excel文件  
            Workbook workbook = new XSSFWorkbook(fis);  
            // 获取第一个工作表  
            Sheet sheet = workbook.getSheetAt(0);  
  
            // 遍历工作表中的所有行  
            for (Row row : sheet) {  
                // 遍历行中的所有单元格  
                for (Cell cell : row) {  
                    // 获取单元格的值,并打印  
                    String cellValue = getCellValueAsString(cell);  
                    System.out.print(cellValue + "\t"); // \t 是制表符,用于分隔单元格内容  
                }  
                System.out.println(); // 每行结束后换行  
            }  
  
            // 关闭工作簿  
            workbook.close();  
        } catch (IOException e) {  
            // 如果发生IO异常,打印堆栈跟踪  
            e.printStackTrace();  
        }  
    }  
  
    /**  
     * 根据单元格类型获取单元格的值,并返回字符串表示  
     *  
     * @param cell 要获取值的单元格  
     * @return 单元格值的字符串表示  
     */  
    private static String getCellValueAsString(Cell cell) {  
        switch (cell.getCellType()) {  
            case STRING:  
                return cell.getStringCellValue(); // 字符串类型直接返回  
            case NUMERIC:  
                if (DateUtil.isCellDateFormatted(cell)) {  
                    return DateUtil.formatCellValueToDate(cell).toString(); // 日期类型格式化为字符串  
                } else {  
                    return Double.toString(cell.getNumericCellValue()); // 数字类型转换为字符串  
                }  
            case BOOLEAN:  
                return Boolean.toString(cell.getBooleanCellValue()); // 布尔类型转换为字符串  
            case FORMULA:  
                return cell.getCellFormula(); // 公式类型返回公式字符串  
            default:  
                return ""; // 其他类型返回空字符串  
        }  
    }  
}

三 写入Excel示例:

import org.apache.poi.ss.usermodel.*; // 导入Apache POI的通用接口  
import org.apache.poi.xssf.usermodel.XSSFWorkbook; // 导入用于处理.xlsx文件的类  
  
import java.io.FileOutputStream;  
import java.io.IOException;  
  
public class ExcelWriter {  
  
    public static void main(String[] args) {  
        // 创建一个新的工作簿对象  
        Workbook workbook = new XSSFWorkbook();  
        // 在工作簿中创建一个名为"Sheet1"的工作表  
        Sheet sheet = workbook.createSheet("Sheet1");  
  
        // 在工作表中创建第一行  
        Row row = sheet.createRow(0);  
        // 在第一行中创建第一个单元格,并设置其值为"Hello, World!"  
        Cell cell = row.createCell(0);  
        cell.setCellValue("Hello, World!");  
  
        try (FileOutputStream fos = new FileOutputStream("path/to/your/output/excel/file.xlsx")) {  
            // 将工作簿的内容写入输出流,即写入文件  
            workbook.write(fos);  
            // 刷新输出流,确保所有数据都写入文件  
            fos.flush();  
        } catch (IOException e) {  
            // 如果发生IO异常,打印堆栈跟踪  
            e.printStackTrace();  
        } finally {  
            try {  
                // 关闭工作簿,释放资源  
                workbook.close();  
            } catch (IOException e) {  
                // 如果关闭工作簿时发生异常,打印堆栈跟踪  
                e.printStackTrace();  
            }  
        }  
    }  
}

四 浏览器下载Excel示例(api示例):文章来源地址https://www.toymoban.com/news/detail-855352.html

import org.apache.poi.xssf.usermodel.XSSFRow;  
import org.apache.poi.xssf.usermodel.XSSFSheet;  
import org.apache.poi.xssf.usermodel.XSSFWorkbook;  
import org.springframework.http.HttpStatus;  
import org.springframework.http.ResponseEntity;  
import org.springframework.web.bind.annotation.GetMapping;  
import org.springframework.web.bind.annotation.RestController;  
  
import javax.servlet.http.HttpServletResponse;  
import java.io.IOException;  
import java.util.ArrayList;  
import java.util.List;  
  
@RestController  
public class StudentExcelController {  
  
    @GetMapping("/exportStudents")  
    public ResponseEntity<Void> exportStudents(HttpServletResponse response) throws IOException {  
        // 创建Excel文档  
        XSSFWorkbook workbook = new XSSFWorkbook();  
        XSSFSheet sheet = workbook.createSheet("学生信息");  
  
        // 创建表头  
        XSSFRow header = sheet.createRow(0);  
        header.createCell(0).setCellValue("姓名");  
        header.createCell(1).setCellValue("学号");  
        header.createCell(2).setCellValue("班级");  
        header.createCell(3).setCellValue("成绩");  
  
        // 填充数据  
        List<Student> students = getStudentList();  
        int rowIndex = 1;  
        for (Student student : students) {  
            XSSFRow row = sheet.createRow(rowIndex++);  
            row.createCell(0).setCellValue(student.getName());  
            row.createCell(1).setCellValue(student.getStudentId());  
            row.createCell(2).setCellValue(student.getClassName());  
            row.createCell(3).setCellValue(student.getScore());  
        }  
  
        // 设置响应头信息  
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");  
        response.setHeader("Content-Disposition", "attachment; filename=students.xlsx");  
  
        // 将Excel文档写入响应流中  
        workbook.write(response.getOutputStream());  
        workbook.close(); // 记得关闭workbook  
  
        return new ResponseEntity<>(HttpStatus.OK);  
    }  
  
    // 模拟获取学生数据  
    private List<Student> getStudentList() {  
        List<Student> students = new ArrayList<>();  
        students.add(new Student("张三", "20230001", "一班", 90));  
        students.add(new Student("李四", "20230002", "二班", 85));  
        students.add(new Student("王五", "20230003", "三班", 92));  
        return students;  
    }  
  
    // 学生实体类  
    static class Student {  
        private String name;  
        private String studentId;  
        private String className;  
        private double score;  
  
        public Student(String name, String studentId, String className, double score) {  
            this.name = name;  
            this.studentId = studentId;  
            this.className = className;  
            this.score = score;  
        }  
  
        public String getName() {  
            return name;  
        }  
  
        public String getStudentId() {  
            return studentId;  
        }  
  
        public String getClassName() {  
            return className;  
        }  
  
        public double getScore() {  
            return score;  
        }  
    }  
}

到了这里,关于浏览器生成Excel文件 ,Apache POI 使用方法及示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用nginx提供https端点,实现不修改浏览器地址(不触发重定向)转发网络流量,附生成自签ssl证书最简单的方法(2个命令)

    近日笔者需要实现一个网络流量转发的需求。要求很简单:将浏览器的请求转发到一个指定的域名,需要提供一个https端口并且把http端口转发到https端口。由于笔者对nginx的认知有限,因此磕磕绊绊研究了一阵,将结果写出来,以供其他有类似需求的同学参考对照。 nginx的官方

    2024年02月08日
    浏览(64)
  • element ui vue 附件预览组件、可预览图片、excel 、pdf.word等文件(浏览器打开文件的方式)

    目录 1.组件源码  2.html 代码 3.组件源码  此组件就是一个单纯的预览图片、浏览器打开文件的形式简单的组合了下而成的,word、excel是直接下载、pdf浏览器打开的形式,如果想本地打开直接预览的话就直接不用看了。word、excel、pdf 的图片是我放到服务器上的图片地址。 1.组

    2024年02月11日
    浏览(69)
  • Apache POI操作Excel文件

            Apache POI是用Java编写的免费开源的跨平台的Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能,其中使用最多的就是使用 POI操作Excel文件 。 POI结构: 我们使用:XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能 POI操作Excel表格封装了几个核心

    2024年02月10日
    浏览(66)
  • 使用JavaScript关闭浏览器窗口的几种方法

    在Web开发中,有时候我们需要通过JavaScript来控制用户的浏览器行为,其中之一就是关闭浏览器窗口。本文将介绍几种使用JavaScript关闭浏览器窗口的方法,并提供相应的源代码示例。 使用window.close方法关闭窗口 要关闭当前窗口,可以使用window.close方法。这个方法会关闭当前浏

    2024年02月04日
    浏览(70)
  • 浏览器与apache通讯中的TCP连接状态迁移

    前言 浏览器(IE,火狐,谷歌等)和apache都是基于http协议进行通讯的。浏览器在客户端,apache在服务端。http协议是在TCP/IP模型中的应用层。TCP协议状态在TCP/IP模型中的传输层。在浏览一个网站的时候,如果关闭了浏览器,只是关闭了浏览器的进程,浏览器和apache之间的连接

    2024年02月05日
    浏览(35)
  • 使用代理之后,电脑浏览器连接不上网络的解决方法

    目录 一、解决方法 1、internet 选项 2.局域网设置关掉所有能勾选的选项(尤其是为LAN使用代理服务器) 二、原因 开启vpn的时候这个代理服务器就会打开,当电脑关机时没来得及关闭vpn时这个代理服务器的选项就会没来得及关上。当你再次关机时,vpn没有开启,但是却开启了

    2024年02月11日
    浏览(53)
  • Apache-POI读写excel文件

    ApachePOI是用Java编写的免费开源的跨平台的JavaAPI,ApachePOI提供API给Java程序对MicrosoftOffice格式档案读和写的功能,其中使用最多的就是使用POI操作Excel文件。 依赖导入: 针对不同的文档形式来操作的时候会提供相应的一些类 HSSF - 提供读写Microsoft Excel XLS格式档案的功能 XSSF -

    2024年02月05日
    浏览(36)
  • Apache POI | Java操作Excel文件

    目录 1、介绍 2、代码示例 2.1、将数据写入Excel文件 2.2、读取Excel文件中的数据 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发、数据结构和算法,初步涉猎Python人工智能开发和前端开发。 🦅主页:@逐梦苍穹 📕您的一

    2024年02月20日
    浏览(54)
  • 基于 Emscripten + WebAssembly 实现浏览器操作 Excel

    【C++】使用WebAssembly在浏览器端操作Excel_wasm文件用什么打开_你的薄荷醇的博客-CSDN博客 使用WebAssembly在浏览器端操作Excel_wasm文件用什么打开 https://blog.csdn.net/weixin_44305576/article/details/125545900?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168964185516800185863561%2522%252C%2522scm%2522%253A%25

    2024年02月13日
    浏览(32)
  • selenium+python自动化测试之使用webdriver操作浏览器的方法

    WebDriver简介 selenium从2.0开始集成了webdriver的API,提供了更简单,更简洁的编程接口。selenium webdriver的目标是提供一个设计良好的面向对象的API,提供了更好的支持进行web-app测试。从这篇博客开始,将学习使用如何使用python调用webdriver框架对浏览器进行一系列的操作 打开浏览

    2024年01月25日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包