diff --git a/src/main/java/com/dsideal/base/Tools/Test/TestXml.java b/src/main/java/com/dsideal/base/Tools/Test/TestXml.java index 6ae25c92..5e5bcb38 100644 --- a/src/main/java/com/dsideal/base/Tools/Test/TestXml.java +++ b/src/main/java/com/dsideal/base/Tools/Test/TestXml.java @@ -10,17 +10,36 @@ import java.io.File; import java.util.*; public class TestXml { + + /** + * 将一个小数形式的字符串,转为保留两位小数的字符串 + * + * @param v + * @return + */ + public static String doubleWith2f(String v) { + // 保留两位小数 + try { + double d = Double.parseDouble(v); + if (d == (int) d) { + v = String.valueOf((int) d); + } else { + v = String.format("%.2f", d); + } + } catch (Exception err) { + //do nothing + } + return v; + } + public static void main(String[] args) throws DocumentException { String xml = "D:\\dsWork\\YunNanDsBase\\src\\main\\java\\com\\dsideal\\base\\Tools\\Test\\Sample.xml"; - //3、开始读取 + // 创建 SAXReader 对象,读取 XML 文件 SAXReader reader = new SAXReader(); Document document = reader.read(new File(xml)); // 获取根元素 Element root = document.getRootElement(); - //折线图 - //将xml用IDEA打开,搜索关键的数据值,然后右键查看XPATH完整路径可以获取到下面的路径 - ///c:chartSpace/c:chart/c:plotArea/c:lineChart/c:ser/c:cat/c:numRef/c:numCache/c:pt/c:v //声明一个数组,图表的所有类型 String[] CHART_TYPES = {"lineChart", "barChart"};//折线,柱状 @@ -68,17 +87,8 @@ public class TestXml { for (Element pt : yList) { String idx = pt.attribute("idx").getValue(); String v = pt.element("v").getText(); - // 保留两位小数 - try { - double d = Double.parseDouble(v); - if (d == (int) d) { - v = String.valueOf((int) d); - } else { - v = String.format("%.2f", d); - } - } catch (Exception err) { - //do nothing - } + //保留两位小数的字符串 + v = doubleWith2f(v); //是不是有效的,存在的数据,因为有的数据是未填写的 if (!existsMap.containsKey(idx)) { existsMap.put(idx, v); @@ -96,7 +106,7 @@ public class TestXml { } //下面要实现行与列的转置 // 创建一个一维列表,用于存储转换后的列 - List> transposed = new ArrayList<>(); + List> res = new ArrayList<>(); //上面生成的数据格式需要行转列,横坐标是年份,纵坐标是数据 int rowCount = tList.size();// 计算行数和列数 @@ -111,9 +121,9 @@ public class TestXml { column.add(x); } // 将当前列添加到结果列表中 - transposed.add(column); + res.add(column); } //输出转置后的数据 - ExcelKit.printTable(transposed); + ExcelKit.printTable(res); } } \ No newline at end of file