读取excel并将其转换为xml
1.前言
项目开发过程中需要读取excel文档,并将excel文档中的内容转化为xml文档并保存在本地文件中。
比如要读取如下格式的excel文档:
通过代码实例中如下的代码段可以运行excel中有空行:
if (cell == null) { item.setText(""); e.addContent(item); cellNum++;//如果存在空列,那么cellNum增加1,这一步很重要。 continue;}
2.代码示例。
package edu.sjtu.erplab.jdom; import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.text.SimpleDateFormat;import java.util.Date;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFDateUtil;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.jdom.Document;import org.jdom.Element;import org.jdom.output.Format;import org.jdom.output.XMLOutputter; /** * 操作Excel表格的功能类*/public class ExcelReaderXMLWriter2 { public static void main(String[] args) {try { InputStream stream = new FileInputStream("d:\\userinfo2.xls"); File f = new File("D:\\temp5.xml");// 新建个file对象把解析之后得到的xml存入改文件中 writerXML(stream, f);// 将数据以xml形式写入文本 } catch (FileNotFoundException e) { System.out.println("未找到指定路径的文件!"); e.printStackTrace(); } catch (IOException e) {// TODO Auto-generated catch block e.printStackTrace(); } } private static void writerXML(InputStream stream, File f)throws IOException { FileOutputStream fo = new FileOutputStream(f);// 得到输入流 Document doc = readExcell(stream);// 读取EXCEL函数 Format format = Format.getCompactFormat().setEncoding("gb2312") .setIndent(""); XMLOutputter XMLOut = new XMLOutputter(format);// 在元素后换行,每一层元素缩排四格 XMLOut.output(doc, fo); fo.close(); } private static Document readExcell(InputStream stream) { Element root = new Element("list"); Document doc = new Document(root);try { HSSFWorkbook wb = new HSSFWorkbook(stream);int WbLength = wb.getNumberOfSheets();for (int i = 0; i < WbLength; i++) { HSSFSheet shee = wb.getSheetAt(i);int length = shee.getLastRowNum(); System.out.println("行数:" + length);for (int j = 1; j <= length; j++) { HSSFRow row = shee.getRow(j);if (row == null) {continue; }int cellNum = row.getPhysicalNumberOfCells();// 获取一行中最后一个单元格的位置 System.out.println("列数cellNum:" + cellNum);// int cellNum =16; Element e = null; e = new Element("USER");// Element[] es = new Element[16]; for (int k = 0; k < cellNum; k++) { HSSFCell cell = row.getCell((short) k); String temp = get(k); System.out.print(k+" "+temp+":"); Element item = new Element(temp);if (cell == null) { item.setText(""); e.addContent(item); cellNum++;//如果存在空列,那么cellNum增加1,这一步很重要。 continue; } else { String cellvalue = "";switch (cell.getCellType()) {// 如果当前Cell的Type为NUMERIC case HSSFCell.CELL_TYPE_NUMERIC:case HSSFCell.CELL_TYPE_FORMULA: {// 判断当前的cell是否为Date if (HSSFDateUtil.isCellDateFormatted(cell)) {// 如果是Date类型则,转化为Data格式 // 方法1:这样子的data格式是带时分秒的:2011-10-12 0:00:00// cellvalue = cell.getDateCellValue().toLocaleString(); // 方法2:这样子的data格式是不带带时分秒的:2011-10-12 Date date = cell.getDateCellValue(); SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd"); cellvalue = sdf.format(date); item.setText(cellvalue); }// 如果是纯数字 else {// 取得当前Cell的数值 cellvalue = String.valueOf((int)cell.getNumericCellValue()); item.setText(cellvalue); }break; }// 如果当前Cell的Type为STRIN case HSSFCell.CELL_TYPE_STRING:// 取得当前的Cell字符串 cellvalue = cell.getRichStringCellValue() .getString(); item.setText(cellvalue);break;// 默认的Cell值 default: cellvalue = " "; item.setText(cellvalue); } e.addContent(item); System.out.println(cellvalue); } } root.addContent(e); } } } catch (Exception e) { }try { stream.close(); } catch (IOException e) { }return doc; } private static String get(int k) { String test = "";switch (k) {case 0: test = "USERNAME";break;case 1: test = "PASSWORD";break;case 2: test = "SEX";break;case 3: test = "AGE";break;case 4: test = "BIRTHDAY";break;default: }return test; } }
转载于:https://www.cnblogs.com/xwdreamer/archive/2012/02/23/2364898.html
读取excel并将其转换为xml相关推荐
- android 读取excel数据并保存为xml文件
今天,简单讲讲android如何 读取excel数据并保存为xml文件. 最近,我这边需要把客户翻译的Excel字符资源作为xml字符资源,当时自己是一个一个的复制,发现效率太低.后来,在网上搜 ...
- excel xml mysql_数据库表转换为xml格式,excel转换为xml格式文件
c#把sql数据库表转换为xml文件 1.连接sql数据库 public bool Open() { try { if (sqlconn == null) { sqlconn = new SqlCon ...
- 读取Excel的文本框,除了解析xml还可以用python调用VBA
作者:小小明 Python读取Excel的文本框 基本需求 今天看到了一个很奇怪的问题,要读取Excel文件的文本框中的文本,例如这种: 本以为openxlpy可以读取,但查看openxlpy官方文档 ...
- 将Excel数据转换为XML
与您可能想到的相反,并不是每个文档最初都是用XML编写的. 实际上,大多数文档是使用其他工具准备的,后来又转换为XML. 许多文档源自关系数据库(例如DB2)或Microsoft Office应用程序 ...
- php把excel变成数组,PHP excel读取excel文件转换为数组
/* 备注:先去下载PHP EXCEL--http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=phpexcel&a ...
- python 读取excel太慢_Python 读取excel并转换为字典
方法一:利用利用xlrd读取excel文件 其实整个过程比较简单,利用xlrd读取excel文件,再把读取到的数据转换为dict即可. 1.安装 xlrd pip install xlrd 2.读取文 ...
- 将excel表格数据转换为xml文本数据
原文:http://blog.javayc.com/archives/12 这篇blog主要是讲述java中poi读取excel,并将excel中的数据转化为xml文本中的数据,而excel的版本包括 ...
- 基于Python读取Excel表格文件数据并转换为字典dict格式
有时我们需要将一个Excel表格文件中的全部或一部分数据导入到Python并转换为字典格式,如何实现呢? 我们以如下所示的一个表格(.xlsx格式)作为简单的示例.其中,表格共有两列,第一列为 ...
- Java使用poi读取excel数据(excel可能很大,先转换为csv再读取)
------------配置------------ jdbc.properties中加入: excelUrl=/--xlsx文件目录路径/ (excelUrl + "xxxx.xl ...
最新文章
- 服务发现框架选型,Consul还是Zookeeper还是etcd
- 【Mysql】纯sql报表
- hdu 3962(AC自动机+矩阵优化dp)
- 【MySQL】navicat for mysql 10.1.7注册码
- Spring安全:防止暴力攻击
- 数据科学家需要掌握的10项统计技术,快来测一测吧
- jeecg boot一对多新增的附表不会主键是一个string_测试开发专题:spring-boot如何使用JPA进行双向一对多配置...
- python柱状图代码_python+matplotlib实现礼盒柱状图实例代码
- 英语总结系列(二十九):好好学英语
- 对象数组 —— 学生信息表
- 火影忍者 动漫 全集目录 分章节 精彩打斗剧集 思维导图整理
- 基于树莓派的人脸识别(Linux系统 百度智能云平台)
- 面向对象的15位、18位中国大陆身份证号码解析、验证工具
- Python科学绘图 南丁格尔图/玫瑰图
- mjs无法访问ftp文件解决
- 边缘计算与深度学习综述
- 将一个实体类复制到另一个实体类
- 找出一个二维数组中的鞍点,即该位置上的的元素,在该行上最大,该列上最小,也可能没有鞍点
- Mysql的卸载流程
- 视频格式转换软件推荐