如何获取有关
org.openxmlformats.schemas.drawingml.x2006
物体:
所有Office打开的XML文件(
*.xlsx
,
*.docx
,
*.pptx
)是邮政档案。所以我们可以把它们解压,看看里面的东西。
所以创建一个
*XLSX
具有条形图的文件,对轴和网格线着色,并格式化轴字体。然后解压
*XLSX
归档并查看
xl/charts/chart1.xml
. 在那里你会发现一些像:
<c:valAx>
...
<c:majorGridlines>
<c:spPr>
<a:ln>
<a:solidFill>
<a:srgbClr val="FF0000"/>
</a:solidFill>
</a:ln>
</c:spPr>
</c:majorGridlines>
...
<c:spPr>
<a:ln>
<a:solidFill>
<a:srgbClr val="FF0000"/>
</a:solidFill>
</a:ln>
</c:spPr>
...
<c:txPr>
<a:bodyPr/>
<a:p>
<a:pPr>
<a:defRPr sz="1200">
<a:solidFill>
<a:srgbClr val="FF0000"/>
</a:solidFill>
</a:defRPr>
</a:pPr>
</a:p>
</c:txPr>
...
</c:valAx>
现在我们需要一个api文档
org.openxmlformats.schemas.drawingml.x2006格式
. 由于grepcode.com似乎不太可用,我发现
http://www.atetric.com/atetric/javadoc/org.apache.poi/ooxml-schemas/1.3/
为此。从开始
Interface CTValAx
。
所以根据我的代码
Create Bar Chart in Excel with Apache POI
值轴的格式如下:
...
//val axis
CTValAx ctValAx = ctPlotArea.addNewValAx();
ctValAx.addNewAxId().setVal(123457); //id of the val axis
ctScaling = ctValAx.addNewScaling();
ctScaling.addNewOrientation().setVal(STOrientation.MIN_MAX);
ctValAx.addNewDelete().setVal(false);
ctValAx.addNewAxPos().setVal(STAxPos.L);
ctValAx.addNewCrossAx().setVal(123456); //id of the cat axis
ctValAx.addNewTickLblPos().setVal(STTickLblPos.NEXT_TO);
//colored major gridlines
ctValAx.addNewMajorGridlines().addNewSpPr().addNewLn().addNewSolidFill().addNewSrgbClr().setVal(new byte[]{(byte)255,0,0});
//colored axis line
ctValAx.addNewSpPr().addNewLn().addNewSolidFill().addNewSrgbClr().setVal(new byte[]{(byte)255,0,0});
//axis font
org.openxmlformats.schemas.drawingml.x2006.main.CTTextBody ctTextBody
= ctValAx.addNewTxPr(); //text body properties
ctTextBody.addNewBodyPr(); //body properties
org.openxmlformats.schemas.drawingml.x2006.main.CTTextCharacterProperties ctTextCharacterProperties
= ctTextBody.addNewP().addNewPPr().addNewDefRPr(); //character properties
ctTextCharacterProperties.setSz(12*100); //size in 100th of a point
ctTextCharacterProperties.addNewSolidFill().addNewSrgbClr().setVal(new byte[]{(byte)255,0,0}); //color
...