excel 读取.xml_读取,回收和重用:使用Excel,XML和Java技术简化报告,第2部分

excel 读取.xml

您本周是否在老板身上尝试过创造性的借口#432? 你被诱惑了吗?

希望您不必这样做。 本系列的第1部分帮助您了解如何使用Java™技术的Microsoft®Excel®电子表格(请参见“阅读,回收和重用:使用Excel,XML和Java技术简化报告的链接,第1部分”中的链接)。 相关主题 )。 只需下载Apache POI并进行设置即可使用,很快,遍历Excel电子表格几乎和遍历公园一样容易。 几乎和绿色一样。

但是读取Excel文件只是一个开始。 本系列向您展示如何使用Apache POI和XML对象模型(XOM)在XML对象中存储Excel文件。 然后,您可以回收这些对象以编写全新的Excel电子表格和XML文件。

样例应用

该示例应用程序包含一个来自虚构的Planet Power公司的Excel电子表格,名为Employee_List.xls 。 大老板说服了Planet Power的最高员工将其薪水的1%捐赠给他最喜欢的事业:基因工程巨大的野生仓鼠行星际保护区(GEE WHIS)。 该示例应用程序将计算数量并创建一个XML报告以赶往避难所。 同时,该应用程序为Big Boss编写了一个Excel电子表格。

要遵循本文中的示例,请下载示例并将文件提取到C:\ Planet Power。 然后,启动Eclipse。

Employees2 Eclipse项目

要导入包含示例应用程序的Employees2 Eclipse项目,请执行以下步骤:

  1. 在Eclipse中,右键单击Package Explorer,然后单击Import
  2. 展开常规,然后选择现有项目到工作区 。 单击Next图1 )。
    图1.将现有项目带入工作空间
    Eclipse Import对话框的屏幕截图,其中选择了一个现有项目并带入工作区
  3. 单击“ 选择根目录”旁边的“ 浏览” ,然后导航到C:\ Planet Power \ Employees2。
  4. 选择Employees2文件夹,单击“ 确定” ,然后单击“ 完成”图2 )。
    图2.完成将项目导入Eclipse
    Eclipse Import对话框的屏幕截图,其中包含将项目导入Eclipse的完成

Employees2文件夹应出现在“程序包资源管理器”窗格中。

注意:对于此项目,请在Employees2项目中的src \ default_package下使用文件ExcelXML.java。

入门

在本系列的第1部分中,第一步是导入Apache POI以及异常和文件处理类(请参阅参考资料中的第1部分链接)。 另外,您需要添加一些XML API类以及用于处理数字的类,如清单1所示

清单1.导入类(ExcelXML.java)
// File and exception handling imports
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.ParseException;

// Apache POI imports
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFHyperlink;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFDataFormatter;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;

// XOM imports
import nu.xom.Document;
import nu.xom.Elements;
import nu.xom.Element;
import nu.xom.Attribute;
import nu.xom.Serializer;

// Imports for later calculations
import java.text.NumberFormat;

导入这些类之后,您就可以开始在main()进行编程了。

处理文件

清单2中的代码表示文件( IOException )和数字转换( ParseException )错误的异常处理结构。

清单2.设置异常处理(ExcelXML.java)
public class ExcelXML {

   public static void main(String[] args) {

      try {

      // Put file and number handling code here.

   // End try
   }
   catch (IOException e) {
      System.out.println("File Input/Output Exception!");
   }
   catch (ParseException e) {
      System.out.println("Number Parse Exception!");
   }

   // End main method
   }

// End class block
}

现在,您可以开始使用XOM。

XOM,文档和XML对象

XOM通过将XML解析成代表XML文档碎片的对象,简化了XML的使用。 表示整个XML文档的类是nu.xom.Document 。 在Document ,您可以添加或访问其他作品。 一些使用XML的类包括:

  • nu.xom.Builder
  • nu.xom.Document
  • nu.xom.Elements
  • nu.xom.Element
  • nu.xom.Serializer

XML的主要部分称为元素。 一个元素由一对标签及其之间的内容组成。 这是一个来自名为weather_service.xml的示例文件中的元素的示例。

<dawn>07:00</dawn>

黎明及其括号( <> )和斜杠( / )一词称为标签。 内容为07:00 。

元素可以包含其他元素,文本内容或两者。 包含元素称为父元素,而内部元素称为子元素或children 。

在XOM中,元素由nu.xom.Element对象表示。 一组元素是nu.xom.Elements对象。

一切美好的根源

要查找元素,请确保每个格式正确的XML文档都使用一个元素: 根元素。 根充当其他所有元素的容器。 如果文档没有根,则它不是正确的XML。

要找到根,请在Document对象上使用getRootElement() 。 仅获取一个元素就可以打开探索文档的策略。 想和根的孩子一起工作吗? 使用Element.getChildElements()变体获取所有子元素或具有特定名称的子元素的列表。 想要一个元素? 从Element.getFirstChildElement()仅获取具有特定名称的第一个子元素。

这看起来很熟悉吗? 遍历XML文档以查找孩子的孩子类似于遍历Excel工作表。

在上一篇文章中,您了解了Apache POI的getStringCellValue()方法如何从Excel HSSFCell检索字符串值。 同样,XOM使用Element.getValue()从XML元素获取字符串内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值