Java读取XML与xls文件

简介: 前言有时候需要通过编程来读取一些xls文件的内容,或者xml文件,读取这两种类型的文件,没什么关联,只是碰巧需要同时读取两种类型的文件。准备读取xls文件,可以使用Apache的一个开源项目.POI,有兴趣的自己看一下官方介绍.使用Maven集成 org.apache.poi poi 3.14读取xml文件,使用系统自带的库即可。

前言

有时候需要通过编程来读取一些xls文件的内容,或者xml文件,读取这两种类型的文件,没什么关联,只是碰巧需要同时读取两种类型的文件。

准备

读取xls文件,可以使用Apache的一个开源项目.POI,有兴趣的自己看一下官方介绍.

使用Maven集成

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.14</version>
</dependency>

读取xml文件,使用系统自带的库即可。

代码

读取淘宝联盟每日10点上新的xls文件

FileInputStream inputStream = new FileInputStream("/Users/aihe/Desktop/精选优质商品清单(内含优惠券)-2017-03-09.xls");
POIFSFileSystem poifsFileSystem = new POIFSFileSystem(inputStream);
Workbook workbook = new HSSFWorkbook(poifsFileSystem);
HSSFSheet sheet = (HSSFSheet) workbook.getSheetAt(0);
int rows = sheet.getPhysicalNumberOfRows();

for (int i = 1; i < rows; i++) {
    HSSFRow row = sheet.getRow(i);
     for (int j = 0; j < row.getPhysicalNumberOfCells(); j++) {
        // TODO 对cell进行操作
         HSSFCell cell = row.getCell(j);
    }
}

读取XML内容,XML内容, 文件名为cat.xml

<?xml version="1.0" encoding="utf-8" ?>
<row>
    <field name="catid">1</field>
    <field name="catname">时尚女装</field>
    <field name="catid">2</field>
    <field name="catname">男装</field>
    <field name="catid">3</field>
    <field name="catname">母婴</field>
    <field name="catid">5</field>
    <field name="catname">食品</field>
    <field name="catid">6</field>
    <field name="catname">美妆</field>
    <field name="catid">7</field>
    <field name="catname">箱包</field>
    ...
</row>
File file = new File("cat.xml");

DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
Document document =  builder.parse(file);
document.getDocumentElement().normalize();

NodeList nodeList = document.getElementsByTagName("field");

LinkedList<String> catids = new LinkedList<>();
LinkedList<String> catNames = new LinkedList<>();

for (int i = 0; i < nodeList.getLength(); i++) {

     if (nodeList.item(i).getNodeType() == Node.ELEMENT_NODE){
           Element element = (Element) nodeList.item(i);

           if (element.getAttribute("name").equals("catid")){
                catIds.add(element.getTextContent());
           }else if (element.getAttribute("name").equals("catname")){
                catNames.add(element.getTextContent())
           }
     }
}

System.out.println(catIds);
System.out.println(catNames);
                

结果:

[1, 2, 3, 5, 6, 7, 9, 11, 13, 14, 15, 16, 17]
[时尚女装, 男装, 母婴, 食品, 美妆, 箱包, 珠宝配饰, 文体用品, 居家百货, 家装家纺, 数码家电, 户外运动, 茶叶 ]

总结

程序比较简单,只是一些简单的小例子, 做一些记录。

目录
相关文章
|
6天前
|
JavaScript Java
Java 将Markdown文件转换为Word和PDF文档
【7月更文挑战第5天】Java中使用`Spire.Doc for Java`库可方便地将Markdown转换为Word或PDF。基本步骤包括导入模块,创建`Document`对象,加载Markdown文件,然后保存为目标格式(`.docx`或`.pdf`)。若遇到`Invalid UTF-8 stream`错误,需确保Markdown文件是UTF-8无BOM编码。页面设置可通过`PageSetup`类调整。注意,实际应用会依据具体需求和环境有所调整。
|
6天前
|
关系型数据库 MySQL Java
|
20天前
|
XML Java 数据库连接
【项目问题解决】 java.lang.IllegalArgumentException: XML fragments parsed
**问题摘要:** Java 应用在执行MyBatis映射时抛出`IllegalArgumentException`,指出XML片段缺少`com.xxx.xxx.xxx.xxx.dao.SingleApasInfoDao.selectListCondition`的值。此异常暗示XML映射文件存在错误或未定义指定方法。解决策略包括检查映射文件中标签的完整性与属性设置,修复可能的XML格式错误,以及确保使用的XML解析器支持所需特性,如有必要,升级解析器。
25 1
|
21天前
|
Java API 开发者
Java中的文件I/O操作详解
Java中的文件I/O操作详解
|
22天前
|
XML Java 数据库
配置applicationContext.xml文件
配置applicationContext.xml文件
|
23天前
|
XML 缓存 JavaScript
优化Java中的XML解析性能
优化Java中的XML解析性能
|
19天前
|
XML Java 数据格式
支付系统----微信支付20---创建案例项目--集成Mybatis-plus的补充,target下只有接口的编译文件,xml文件了,添加日志的写法
支付系统----微信支付20---创建案例项目--集成Mybatis-plus的补充,target下只有接口的编译文件,xml文件了,添加日志的写法
|
20天前
|
Java
Java之file,创建文件,File f1 = new File(“E:\\itcast\\java.txt“),先f1定路径,在f1.createNewFile()就能够创建文件,mkdir目录
Java之file,创建文件,File f1 = new File(“E:\\itcast\\java.txt“),先f1定路径,在f1.createNewFile()就能够创建文件,mkdir目录
|
22天前
|
Java
Error:java: 错误: 无效的源发行版:13, 类文件具有错误的版本 61.0, 应为 55.0 请删除该文件或确保该文件位于正确的类路径子目录中。
Error:java: 错误: 无效的源发行版:13, 类文件具有错误的版本 61.0, 应为 55.0 请删除该文件或确保该文件位于正确的类路径子目录中。
|
23天前
|
XML JavaScript Java
解析XML文件的几种方法
解析XML文件的几种方法