首页 文章 精选 留言 我的

精选列表

搜索[双向转换],共10005篇文章
优秀的个人博客,低调大师

读取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; } } 本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/2012/02/23/2364898.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

List、Set、Map、数组之间各种转换

刚学Java不久的时候,接到一个电面,然后问了一些java的知识,比如说Java的编码,Unicode等,但是最让我蛋疼的是怎么吗map转为set,那个时候对集合用的很少,对集合不是特别了解,map还知道,set就蒙了,然后转为set更蒙了,觉得应该有API提供吧,但是不知道怎么说。后来我一直下来再查这个问题,查到了,但是没有实践过,今天我就来一发代码。 List转Set Set set = new HashSet(new ArrayList()); Set转List List list = new ArrayList(new HashSet()); 数组转为List List arr = Arrays.asList("1", "2", "3"); //或者 String[] arr = {"1", "2"}; List list = Arrays.asList(arr); 数组转为Set int[] arr = { 1, 2, 3 }; Set set = new HashSet(Arrays.asList(arr)); Map的值转化为List List list = new ArrayList(map.values()); Map的值转化为Set Set set = new HashSet(map.values()); List转数组 List list = Arrays.asList("a","b"); String[] arr = (String[])list.toArray(new String[list.size()]); 代码 public class listsetmao { private static List<String> arrayList; private static Map<String, String> hashMap; private static Set<String> hashSet; private static String[] arr = {"11oneone","22twotwo"}; public static void main(String[] args) { /* * //list转set initList(); Set<String> set = new * HashSet<String>(arrayList); * System.out.println("arrayList.toString()--->"+set.toString()); * System.out.println("set.toString()--->"+set.toString()); */ /* * //set转list initSet(); List<String> list = new * ArrayList<String>(hashSet); * System.out.println("hashSet.toString()--->"+hashSet.toString()); * System.out.println("list.toString()--->"+list.toString()); */ /* // 数组转为list List<String> list = Arrays.asList(arr); System.out.println("list.toString()--->"+list.toString()); */ /* //数组转set Set set = new HashSet<>(Arrays.asList(arr)); System.out.println("set.toString()--->"+set.toString()); */ /* //map的值转为list initMap(); List<String> list = new ArrayList<String>(hashMap.values()); System.out.println("list.toString()--->"+list.toString()); */ /* //map的值转为set initMap(); Set<String> set = new HashSet<String>(hashMap.values()); System.out.println("set.toString()--->"+set.toString()); */ /* //map的key转为set initMap(); Set<String> set = new HashSet<String>(hashMap.keySet()); System.out.println("set.toString()--->"+set.toString()); */ //list转数组 initList(); String[] arr1 = (String[])arrayList.toArray(new String[arrayList.size()]); System.out.println("Arrays.toString(arr1)--->"+Arrays.toString(arr1)); } public static void initList() { arrayList = new ArrayList<String>(); arrayList.add("1"); arrayList.add("2"); arrayList.add("3"); arrayList.add("4"); } public static void initMap() { hashMap = new HashMap<String, String>(); hashMap.put("one", "one1"); hashMap.put("two", "two2"); hashMap.put("three", "three3"); } public static void initSet() { hashSet = new HashSet<String>(); hashSet.add("1one"); hashSet.add("2two"); hashSet.add("3three"); hashSet.add("4four"); hashSet.add("5five"); } } 我是天王盖地虎的分割线 源代码:http://pan.baidu.com/s/1dD1Qx01 listsetmap.zip 本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/3825721.html如需转载请自行联系原作者

优秀的个人博客,低调大师

WEB测试到移动测试的转换

移动互联网的发展毋庸置疑是必然的趋势,我们曾经传统WEB互联网测试的同学,也必然走上移动测试的道路,移动测试与pc测试到底需要怎样的思维转变才能更快的进入移动节奏呢?对比下WEB与移动的测试不同点: 从测试类型看不同: 测试类型 WEB 移动 交互测试 稍轻 更注重 ,好的体验是移动互联网取胜的关键! 性能测试 接口性能页面性能前端性能 服务端系统性能客户端系统性能耗电量流量 安装与卸载测试 无 必要且重要 升级测试 无 必要且重要 功能测试 同等重要 同等重要 安全测试 常规安全 常规安全手机隐私安全 兼容性测试 浏览器兼容系统兼容性 不同安卓/IOS系统版本兼容性;不同机型兼容性 从测试过程看不同: 测试过程 WEB 移动 测试分析 系统交互图功能流程图 服务端接口分析;移动交互分析; 测试用例 功能、交互、接口用例 功能用例;客户端接口请求与服务端接口反馈用例;移

优秀的个人博客,低调大师

代码管理如何真正接入 DevOps 工具链:从事件驱动到双向追溯

代码管理平台在研发体系中处于一个特殊位置:它既是开发者日常操作的入口,又是需求、构建、测试、部署、度量等环节的数据源头。但很多团队的实际状况是,代码仓库与周边系统之间只有零星的手工同步,甚至完全割裂。这种割裂带来的问题不是"工具多",而是研发数据流在关键节点上断裂,导致追溯失效、质量失控、度量失真。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册