我使用apache poi在excel文件中创建了堆积条形图。如何在不增加宽度的情况下包装y轴标签。有人能帮忙吗?
var filename = new Date();
filename.toString();
var f1 = filename.toString.replaceAll(":", "")
var file = new File(Play.application().configuration().getString("bdc.documents.location") + "/exportedDocuments/" + f1 + ".xlsx");
file.getParentFile().mkdirs();
val fileOut = new FileOutputStream(file)
val wb = new XSSFWorkbook()
val sheet = wb.createSheet("Sheet1");
var row = sheet.createRow(0);
row.createCell(0).setCellValue("Requirement Name")
row.createCell(1).setCellValue("Initial Stage")
row.createCell(2).setCellValue("Appliaction stage")
row.createCell(3).setCellValue("Integration Stage")
row.createCell(4).setCellValue("Infrastructure Stage")
row.createCell(5).setCellValue("Development Division Head")
row.createCell(6).setCellValue("Buisness Partner Approval")
row.createCell(7).setCellValue("Resource Allocation")
var cnt = 0
var requirementMap = new java.util.HashMap[String, String]();
var initialMap = new java.util.HashMap[String, String]();
var applicationMap = new java.util.HashMap[String, String]();
var integrationMap = new java.util.HashMap[String, String]();
var infrastructureMap = new java.util.HashMap[String, String]();
var developmentMap = new java.util.HashMap[String, String]();
var pendingMap = new java.util.HashMap[String, String]();
var resourceMap = new java.util.HashMap[String, String]();
if(!estimationDelays.isEmpty){
for(e <- estimationDelays){
cnt = cnt + 1
var row = sheet.createRow(cnt);
var name = e.requirement_name
var initial = e.initial_delayed_days.get.toString() + " "
var application = e.application_delayed_days.get.toString() + " "
var integration = e.integration_delayed_days.get.toString() + " "
var infrastucture = e.infrastructure_delayed_days.get.toString() + " "
var development = e.development_delayed_days.get.toString() + " "
var pending = e.pending_delayed_days.get.toString() + " "
var resource = e.resource_dalayed_days.get.toString() + " "
row.createCell(0).setCellValue(name)
row.createCell(1).setCellValue(initial)
row.createCell(2).setCellValue(application)
row.createCell(3).setCellValue(integration)
row.createCell(4).setCellValue(infrastucture)
row.createCell(5).setCellValue(development)
row.createCell(6).setCellValue(pending)
row.createCell(7).setCellValue(resource)
}
}
cnt = 0
if(!estimationDelays.isEmpty){
for(e <- estimationDelays.reverse){
cnt = cnt + 1
requirementMap.put(cnt.toString, e.requirement_name)
initialMap.put(cnt.toString, e.initial_delayed_days.get.toString())
applicationMap.put(cnt.toString, e.application_delayed_days.get.toString())
integrationMap.put(cnt.toString, e.integration_delayed_days.get.toString())
infrastructureMap.put(cnt.toString, e.infrastructure_delayed_days.get.toString())
developmentMap.put(cnt.toString, e.development_delayed_days.get.toString())
pendingMap.put(cnt.toString, e.pending_delayed_days.get.toString())
resourceMap.put(cnt.toString, e.resource_dalayed_days.get.toString())
}
}
var estimationMap = new java.util.HashMap[String, String]();
estimationMap.put("1", "Initial Stage")
estimationMap.put("2", "Appliaction stage")
estimationMap.put("3", "Integration Stage")
estimationMap.put("4", "Infrastructure Stage")
estimationMap.put("5", "Development Division Head")
estimationMap.put("6", "Buisness Partner Approval")
estimationMap.put("7", "Resource Allocation")
var size = estimationDelays.size
var a = size + 3
var b = 18
var c = a * 4
var a1 = 0
var b1 = 0
var c1 = 0
var drawing = sheet.createDrawingPatriarch();
var anchor = drawing.createAnchor(0, 0, 5, 0, 0, a, b, c)
var chart = drawing.createChart(anchor)
var ctChart = chart.getCTChart
var ctPlotArea = ctChart.getPlotArea();
var ctBarChart = ctPlotArea.addNewBarChart();
var anchor1 = drawing.createAnchor(0, 0, 0, 0, 0, a1, b1, c1)
var shape = drawing.createSimpleShape(anchor1)
shape.setShapeType(ShapeTypes.LINE);
shape.setLineWidth(1.5);
shape.setLineStyle(3);
shape.setLineStyleColor(0, 0, 255);
var ctBoolean1 = ctBarChart.addNewVaryColors();
ctBoolean1.setVal(false)
ctBarChart.addNewBarDir().setVal(STBarDir.BAR);
ctBarChart.addNewGrouping().setVal(STBarGrouping.STACKED);
var data = 100.toByte
ctBarChart.addNewOverlap().setVal(data)
var dLbls = ctBarChart.addNewDLbls();
dLbls.addNewShowBubbleSize().setVal(false);
dLbls.addNewShowLegendKey().setVal(false);
dLbls.addNewShowCatName().setVal(false);
dLbls.addNewShowSerName().setVal(false);
dLbls.addNewShowPercent().setVal(false);
dLbls.addNewShowVal().setVal(true);
val buisness: Array[Byte] = Array(96,189.toByte,104)
val application: Array[Byte] = Array(93,165.toByte,218.toByte)
val integration: Array[Byte] = Array(178.toByte,145.toByte,47)
val infrastructure: Array[Byte] = Array(205.toByte,162.toByte,252.toByte)
val development: Array[Byte] = Array(173.toByte,191.toByte,10)
val resource: Array[Byte] = Array(25,101,169.toByte)
for (r <- 1 to 7) {
var cTBarSer = ctBarChart.addNewSer();
var cTStrRef = cTBarSer.addNewTx().addNewStrRef();
cTStrRef.setF("Label " + r);
cTStrRef.addNewStrCache().addNewPtCount().setVal(1);
var cTStrVal = cTStrRef.getStrCache().addNewPt();
cTStrVal.setIdx(0);
cTStrVal.setV(estimationMap.get(r.toString));
cTBarSer.addNewIdx().setVal(r-1);
cTStrRef = cTBarSer.addNewCat().addNewStrRef();
cTStrRef.setF("Categories");
cTStrRef.addNewStrCache().addNewPtCount().setVal(3);
for (c <- 1 to size + 1) {
cTStrVal = cTStrRef.getStrCache().addNewPt();
cTStrVal.setIdx(c-1);
cTStrVal.setV(requirementMap.get(c.toString));
}
var cTNumRef = cTBarSer.addNewVal().addNewNumRef();
cTNumRef.setF("" + r);
cTNumRef.addNewNumCache().addNewPtCount().setVal(3);
for (c <- 1 to size + 1) {
var cTNumVal = cTNumRef.getNumCache().addNewPt();
cTNumVal.setIdx(c-1);
if (r == 1) {
cTNumVal.setV(initialMap.get(c.toString))
var ctShapeProperties = cTBarSer.addNewSpPr();
ctShapeProperties.addNewSolidFill().addNewSrgbClr().setVal(buisness);
} else {
if (r == 2) {
cTNumVal.setV(applicationMap.get(c.toString))
var ctShapeProperties = cTBarSer.addNewSpPr();
ctShapeProperties.addNewSolidFill().addNewSrgbClr().setVal(application);
} else {
if (r == 3) {
cTNumVal.setV(integrationMap.get(c.toString))
var ctShapeProperties = cTBarSer.addNewSpPr();
ctShapeProperties.addNewSolidFill().addNewSrgbClr().setVal(integration);
} else {
if (r == 4) {
cTNumVal.setV(infrastructureMap.get(c.toString))
var ctShapeProperties = cTBarSer.addNewSpPr();
ctShapeProperties.addNewSolidFill().addNewSrgbClr().setVal(infrastructure);
} else {
if (r == 5) {
cTNumVal.setV(developmentMap.get(c.toString))
var ctShapeProperties = cTBarSer.addNewSpPr();
ctShapeProperties.addNewSolidFill().addNewSrgbClr().setVal(development);
} else {
if (r == 6) {
cTNumVal.setV(pendingMap.get(c.toString))
var ctShapeProperties = cTBarSer.addNewSpPr();
ctShapeProperties.addNewSolidFill().addNewSrgbClr().setVal(buisness);
} else {
if (r == 7) {
cTNumVal.setV(resourceMap.get(c.toString))
var ctShapeProperties = cTBarSer.addNewSpPr();
ctShapeProperties.addNewSolidFill().addNewSrgbClr().setVal(resource);
} else {
}
}
}
}
}
}
}
}
}
ctBarChart.addNewAxId().setVal(123456);
ctBarChart.addNewAxId().setVal(123457);
//cat axis
var ctCatAx = ctPlotArea.addNewCatAx();
ctCatAx.addNewAxId().setVal(123456); //id of the cat axis
var ctScaling = ctCatAx.addNewScaling();
ctScaling.addNewOrientation().setVal(STOrientation.MIN_MAX);
ctCatAx.addNewDelete().setVal(false);
ctCatAx.addNewAxPos().setVal(STAxPos.B);
ctCatAx.addNewCrossAx().setVal(123457); //id of the val axis
ctCatAx.addNewTickLblPos().setVal(STTickLblPos.NEXT_TO);
//val axis
val ctValAx = ctPlotArea.addNewValAx();
ctValAx.addNewAxId().setVal(123457); //id of the val axis
ctScaling = ctValAx.addNewScaling();
ctScaling.addNewOrientation().setVal(STOrientation.MIN_MAX);
ctScaling.addNewMin().setVal(0)
ctScaling.addNewMax().setVal(550)
ctValAx.addNewDelete().setVal(false);
ctValAx.addNewAxPos().setVal(STAxPos.L);
ctValAx.addNewCrossAx().setVal(123456); //id of the cat axis
ctValAx.addNewTickLblPos().setVal(STTickLblPos.NEXT_TO);
//legend
val ctLegend = ctChart.addNewLegend();
ctLegend.addNewLegendPos().setVal(STLegendPos.T);
ctLegend.addNewOverlay().setVal(false);
wb.write(fileOut)
我使用apache poi在excel文件中创建了堆积条形图。如何在不增加宽度的情况下包装y轴标签。任何人都可以帮忙吗?有人可以帮忙吗? stacked bar chart
woking ...在标签名称中添加“\ n”