首页 > 编程语言 >在Java中使用Apache POI导入Excel文件并保留内容的换行符

在Java中使用Apache POI导入Excel文件并保留内容的换行符

时间:2023-07-03 15:35:25浏览次数:55  
标签:Java String 单元格 Excel cell POI import cellValue

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

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

public class ReadExcelWithNewlines {
    public static void main(String[] args) {
        String filePath = "path/to/your/excel/file.xlsx";

        try (FileInputStream fis = new FileInputStream(filePath);
             Workbook workbook = new XSSFWorkbook(fis)) {

            Sheet sheet = workbook.getSheetAt(0);

            // 遍历每一行
            for (Row row : sheet) {
                // 遍历每个单元格
                for (Cell cell : row) {
                    CellType cellType = cell.getCellType();
                    if (cellType == CellType.STRING) {
                        String cellValue = cell.getStringCellValue();
                        System.out.println("Cell Value: " + cellValue);
                    } else if (cellType == CellType.FORMULA) {
                        FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
                        CellValue cellValue = evaluator.evaluate(cell);
                        String formattedCellValue = formatFormulaCellValue(cellValue);
                        System.out.println("Cell Value: " + formattedCellValue);
                    }
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static String formatFormulaCellValue(CellValue cellValue) {
        switch (cellValue.getCellType()) {
            case STRING:
                return cellValue.getStringValue();
            case BOOLEAN:
                return String.valueOf(cellValue.getBooleanValue());
            case NUMERIC:
                return String.valueOf(cellValue.getNumberValue());
            default:
                return "";
        }
    }
}

注意在上面的代码中,我们使用了Apache POI库的XSSFWorkbook类和其他相关类来加载和读取Excel文件。该代码遍历了Excel表格中的每一行和每个单元格,并根据单元格类型获取相应的单元格值。

如果单元格内容是函数公式,我们使用FormulaEvaluator类计算其值。

请确保在运行上述代码之前将filePath变量设置为您实际的Excel文件路径。

标签:Java,String,单元格,Excel,cell,POI,import,cellValue
From: https://www.cnblogs.com/mihutao/p/17522997.html

相关文章

  • 电脑迷宫鼠(Java语言实现)
    电脑迷宫鼠基础要求1.概述:用java面向对象程序设计语言,设计和实现一电脑鼠走迷宫的软件程序,即一个假想的小车能在图示的迷宫中根据设定的起始点和终点自主寻找路径。本综合实践分成两部分:第一部分为算法设计和实现部分,第二部分为界面展现部分。2.第一部......
  • java8发送邮件失败, 修改jdk镜像中的java.security文件
    背景原本部署环境中的java:8镜像在检查问题删除,用dockerpullopenjdk:8重新拉取并改名java:8,在重新部署后,发送邮件报错:javax.net.ssl.SSLHandshakeException:Noappropriateprotocol(protocolisdisabledorciphersuitesareinappropriate)!!!原因根本原因是j......
  • Java线程池基础介绍
    一、线程池的优点1、线程池能够复用已经创建了的线程来执行任务,从而降低了频繁创建和销毁线程所带来的资源消耗;2、任务创建完成时,不必等待线程的创建,能够立即执行,提高了任务响应的速度。 二、创建线程池的七大核心参数1、corePoorSize核心线程数线......
  • JavaScript 中 object 的几个方法:entries,values,keys 对比
    在JavaScript中,对象(Object)是一种无序的键值对集合。以下是entries,values和keys这三个对象方法的比较: entries()方法:返回一个包含对象的键值对的数组。每个键值对都是一个数组,包含两个元素,第一个元素是键名,第二个元素是对应的值。1constobj={a:1,b:2,c:3};2conso......
  • JAVA获取字符串内的括号对(支持多层级);获取括号对的内容;按指定规则返回括号对位置;
    先看结果:处理字符串 "这个是一条测试用的字符串[(5(4(3[(1)(2)]))(7))][(6)]"结果  解决思路:参考正则表达式里面出入站部分 代码实现如下:方法调用“: Stringtest="这个是一条测试用的字符串[(5(4(3[(1)(2)]))(7))][(6)]";LinkedHashMap<Inte......
  • 41. Spring Boot 使用Java代码创建Bean并注册到Spring中【从零开始学Spring Boot】
    已经好久没有讲一些基础的知识了,这一小节来点简单的,这也是为下节的在Spring多数Boot中使用多数据源做准备。从Spring3.0开始,增加了一种新的途径来配置BeanDefinition,这就是通过JavaCode配置BeanDefinition。      与XML和Annotation两种配置方式不同点在于:      ......
  • 郑州Java面试题
    常见题库https://github.com/cosen1024/Java-Interviewhttps://github.com/whx123/JavaHomehttps://github.com/lvminghui/Java-Noteshttps://github.com/cosen1024/Java-Interview==和equals区别==基本类型比较的是值,对象类型比较的是地址,equals默认情况下也是比较地址......
  • JAVA生成xml文件格式
    publicboolean A(参数1,……){Documentdocument=DocumentHelper.createDocument();Namespacena=Namespace.get("");Strings=null;na=new Namespace(xxxxxxxxxxxxxxxxxxxxx);//命名空间Elementroot=document.addElement(newQName(“A......
  • java 相对路径问题 和绝对路径
    小例:java代码:都可以成功Filefile=newFile("./xml/a.properties");Filefile=newFile("xml/a.properties");下面就会出错Filefile=newFile("/xml/a.properties"); 总结:.为当前目录,即工程名所在文件夹  下面的当前路径都是你的工程目录Filefile=newFile("./......
  • 关于Java RDP协议实现远程桌面连接的开源项目properjavardp
    最近想学一下在Android平台上实现RDP协议远程连接PC,于是在网上找这方面的资料,发现了一个开源的JavaRDP项目,很不错,拿出来和大家分享一下。关于properjavardp的一些说明,可以到这里看看:http://properjavardp.sourceforge.net/ 。1、首先到http://sourceforge.net/projects/properjav......