dom4j.jar poi.jar
/**
* 解析XML,把结果写入Excel
* @param xmlPath xml文件路径
* @param workbook Excel表
*
*/
@SuppressWarnings("unchecked")
private static void setAlarmInfoToExcelSheet(String xmlPath,
HSSFWorkbook workbook)
{
HSSFSheet sheet = workbook.getSheetAt(0);// excel sheet
HSSFRow row; // 在sheet表格中创建一行
HSSFCell cell; // 在每一行中配置单元格
HSSFHyperlink link; // 每个单元格对应的链接
// 解析XML,遍历每个alarm,把结果写入excel单元格
Document document = XmlUtils.getXMLDocFromFile(xmlPath);
if (null == document)
{
return;
}
List<Node> nodeList = document.selectNodes("//alarm");
String strTemp = "";
for (int i = 0; i < nodeList.size(); i++)
{
Element alarm = (Element) nodeList.get(i);
// 从第4行开始写入,前面是模板里设置的表头
row = sheet.createRow(i + LINK_START_ROW);
// 序号
cell = row.createCell(0);
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
cell.setCellValue(i + 1);
// 错误级别
cell = row.createCell(1);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
strTemp = alarm.attributeValue("level");
cell.setCellValue(strTemp);
// 告警ID
cell = row.createCell(2);
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
strTemp = alarm.attributeValue("code");
cell.setCellValue(strTemp);
// 所在文件
Node filePathNode = alarm.selectSingleNode("./extends/filePath");
if (null != filePathNode)
{
strTemp = ((Element) filePathNode).attributeValue("value");
cell = row.createCell(3);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(strTemp.substring(strTemp.lastIndexOf("\\") + 1));
link = new HSSFHyperlink(HSSFHyperlink.LINK_URL);
link.setAddress("CI_HOME/"
+ strTemp.substring(strTemp.lastIndexOf("\\") + 1));
cell.setHyperlink(link);
}
// 原因
Node reasonNode = alarm.selectSingleNode("./reason");
if (null != reasonNode)
{
strTemp = reasonNode.getText();
cell = row.createCell(4);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(strTemp);
}
// 修改提示
Node solution = alarm.selectSingleNode("./solution");
if (null != solution)
{
strTemp = solution.getText();
cell = row.createCell(5);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(strTemp);
}
}
}
分享到:
相关推荐
Java提供了内置的`javax.xml.parsers`包,可以使用`DocumentBuilderFactory`和`DocumentBuilder`来解析XML文件。首先,创建`Document`对象,然后使用`parse()`方法解析XML文件。解析后,你可以通过`...
使用`lxml`库中的`etree`模块来解析XML文件。首先,打开XML文件并将其解析为ElementTree对象。 ```python from lxml import etree def parse_xml(file_path): tree = etree.parse(file_path) root = tree....
本篇文章将详细介绍如何在Java中解析XML文件,并以“xml2excel”为例,探讨如何将XML数据转换为Excel格式。 首先,我们需要了解Java中解析XML的基本方法。Java内置了两个主要的API用于XML解析:DOM(Document ...
XML文件可能包含了需要解析的数据,而Java代码则演示了如何使用DOM4J解析XML以及如何使用Apache POI将解析结果写入Excel。这些示例代码可以帮助初学者理解XML解析和Excel导出的实现过程。 为了确保程序的健壮性,还...
如果需要将XML数据转换为Excel,首先解析XML,然后将其转换为DataFrame,最后写入Excel: ```python xml_df = xml_to_dataframe('example.xml') # 自定义函数,将XML转换为DataFrame xml_df.to_excel('xml_to_...
标题中的“解析Excel和XML”涉及的是两种不同的数据格式处理技术。Excel是Microsoft Office套件中的电子表格应用程序,常用于数据分析、财务管理和报告制作。XML(eXtensible Markup Language)则是一种标记语言,...
例如,Python有pandas库,可以配合lxml库解析XML并写入Excel。这种方法允许更多的自定义和控制,但需要一定的编程基础。 总的来说,XML转Excel是数据管理和分析的一个实用步骤,有助于将结构化的XML数据转换为易于...
2. Excel到XML:完成翻译工作后,该工具可以将Excel文件的内容转换回XML格式,并自动按Android的要求生成对应的`values-xx`文件夹结构。这样,开发者可以直接将这些文件导入项目,完成本地化设置。 三、项目结构与...
可以将xml文件转为excel 文件名最好不包含中文字符 电脑上需要安装jre 然后点击右键 选择Java application 运行
总的来说,通过Apache POI和JDOM,你可以轻松地实现Excel到XML的转换,这对于数据迁移、数据交换或数据存储在不同系统之间具有很大的价值。同时,这也需要对Java编程、Excel文件结构以及XML语法有深入的理解。
本篇将详细探讨如何解析Excel文件并将其内容写入到XML中。 首先,我们要理解Excel文件的结构。Excel文件通常是二进制的`.xlsx`格式,它由多个基于Open XML标准的XML文件组成,存储在一个压缩的ZIP文件内。我们可以...
1. 导入`String.xml`到Excel,自动生成表格结构,包括字符串ID、默认值和不同语言的翻译。 2. 在Excel中编辑完成后,导回为`String.xml`,更新或创建对应的资源文件。 3. 支持多语言同步更新,避免手动逐一修改各个...
反之亦然,你可以解析XML,然后用POI将数据写入Excel文件。 在项目中引入“解析excel和xml的jar”可能意味着这个jar包含了对这两种格式的解析支持。它可能封装了上述提到的Apache POI和Java的XML解析库,提供了一种...
结合以上两个库,我们可以实现从Excel到XML的转换。首先用POI读取Excel文件,将数据保存到内存中的数据结构,然后使用DOM4J构建对应的XML结构。具体步骤如下: 1. 使用POI打开Excel文件,遍历每个工作表和行,将...
在Excel到XML的过程中,工具可能需要将单元格数据重新组织成XML的节点结构。 请注意,不同工具的转换效果可能会有所不同,尤其是在处理复杂的数据结构时。因此,在使用这样的工具时,务必检查转换后的文件是否保留...
- Java标准库中的`javax.xml.parsers.DocumentBuilderFactory`和`DocumentBuilder`可以用来解析XML文件。 - 创建`Document`对象,然后通过`getElementsByTagName`等方法遍历XML节点。 - 示例代码: ```java ...
这些工具能够解析XML,然后将数据填充到Excel工作表中。在Python中,`pandas.read_xml()`函数可以将XML数据转换为DataFrame,再通过`to_excel()`方法写入Excel文件。而在Java中,`JAXB`可以将XML对象绑定到Java对象...
<?xml version="1.0" encoding="utf-8"?> <users> <user id="A001"> <name>zhaoyun</name> <age>40</age> </user> <user id="b001"> <name>Liubie</name> <age>25</age> </user> </users>
本文将深入讲解如何使用SAX(Simple API for XML)解析XML文档,并将解析结果导出到Excel文件中。SAX是一种事件驱动的解析方式,相比DOM(Document Object Model)解析,它更节省内存,适用于处理大型XML文件。 ...
2. **Excel到XML转换**:当Excel中的翻译完成后,工具可以将修改后的表格重新转换回`String.xml`文件。这个过程会保留原有的XML结构,并更新或添加新的字符串资源。 3. **版本控制**:如果项目中有多个语言的`...