We are excited to announce the release of Spire.Office for Java 5.3.2. This version brings some new features. For instance, Spire.XLS for Java supports setting text direction for the chart category axis as well as sorting for a Table, and supports creating Waterfall Chart, Pareto Chart, Histogram Chart, BoxAndWhisker Chart, TreeMap Chart, SunBurst Chart, and Funnel Chart, it also enhances the conversion from Excel to image, Excel to PDF; Spire.PDF for Java supports converting PDF to a Grayscale document, and enhances the conversion from PDF to PDFA1B. Meanwhile, a lot of bugs have been successfully fixed. More details are listed as follow.
Click the link to download Spire.Office for Java 5.3.2:
Here is a list of changes made in this release
Spire.XLS for Java
Category | ID | Description |
New feature | SPIREXLS-3641 | Supports setting text direction for the chart category axis.
chart.getPrimaryCategoryAxis().setTextDirection(TextVerticalValue.EastAsianVertical); |
New feature | SPIREXLS-3706 | Supports sorting for a Table.
Workbook workbook = new Workbook(); workbook.loadFromFile(inputFile); Worksheet sheet = workbook.getWorksheets().get(0); // Add a new List Object to the worksheet IListObject listObject = sheet.getListObjects().create("table", sheet.getCellRange(1, 1, 19, 5)); // Add Default Style to the table listObject.setBuiltInTableStyle(TableBuiltInStyles.TableStyleLight9); listObject.getAutoFilters().getSorter().getSortColumns().add(2, OrderBy.Ascending); listObject.getAutoFilters().getSorter().sort(sheet.getCellRange(1, 1, 19, 5)); |
New feature | - | Supports creating the Waterfall Chart.
Workbookworkbook=newWorkbook(); workbook.loadFromFile("input.xlsx"); Worksheetsheet=workbook.getWorksheets().get(0); ChartofficeChart=sheet.getCharts().add(); //Setcharttypeaswaterfall officeChart.setChartType(ExcelChartType.WaterFall); //Setdatarangetothechartfromtheworksheet officeChart.setDataRange(sheet.getRange().get("A2:B8")); //Datapointsettingsastotalinchart officeChart.getSeries().get(0).getDataPoints().get(3).setAsTotal(true); officeChart.getSeries().get(0).getDataPoints().get(6).setAsTotal(true); //Showingtheconnectorlinesbetweendatapoints officeChart.getSeries().get(0).getFormat().showConnectorLines(true); //Setthecharttitle officeChart.setChartTitle("CompanyProfit(inUSD)"); //Formattingdatalabelandlegendoption officeChart.getSeries().get(0).getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true); officeChart.getSeries().get(0).getDataPoints().getDefaultDataPoint().getDataLabels().setSize(8); officeChart.getLegend().setPosition(LegendPositionType.Right); workbook.saveToFile("output.xlsx",FileFormat.Version2016); |
New feature | - | Supports creating the Pareto Chart.
Workbookworkbook=newWorkbook(); workbook.loadFromFile("input.xlsx"); Worksheetsheet=workbook.getWorksheets().get(0); ChartofficeChart=sheet.getCharts().add(); //SetcharttypeasPareto officeChart.setChartType(ExcelChartType.Pareto); //Setdatarangeintheworksheet officeChart.setDataRange(sheet.getRange().get("A2:B8")); //Setcategoryvaluesasbinvalues officeChart.getPrimaryCategoryAxis().isBinningByCategory(true); officeChart.getPrimaryCategoryAxis().setOverflowBinValue(5); officeChart.getPrimaryCategoryAxis().setUnderflowBinValue(1);; //FormattingParetoline officeChart.getSeries().get(0).getParetoLineFormat().getLineProperties().setColor(Color.blue); //Gapwidthsettings officeChart.getSeries().get(0).getDataFormat().getOptions().setGapWidth(6); //Setthecharttitle officeChart.setChartTitle("Expenses"); //Hidingthelegend officeChart.hasLegend(false); workbook.saveToFile("output.xlsx",FileFormat.Version2016); |
New feature | - | Supports creating the Histogram Chart.
Workbookworkbook=newWorkbook(); workbook.loadFromFile("input.xlsx"); Worksheetsheet=workbook.getWorksheets().get(0); ChartofficeChart=sheet.getCharts().add(); //Setcharttypeashistogram officeChart.setChartType(ExcelChartType.Histogram); //Setdatarangeintheworksheet officeChart.setDataRange(sheet.getRange().get("A1:A15")); //Categoryaxisbinsettings officeChart.getPrimaryCategoryAxis().setBinWidth(8); //Gapwidthsettings officeChart.getSeries().get(0).getDataFormat().getOptions().setGapWidth(6); //Setthecharttitleandaxistitle officeChart.setChartTitle("HeightData"); officeChart.getPrimaryValueAxis().setTitle("Numberofstudents"); officeChart.getPrimaryCategoryAxis().setTitle("Height"); //Hidingthelegend officeChart.hasLegend(false); workbook.saveToFile("output.xlsx",FileFormat.Version2016); |
New feature | - | Supports creating the BoxAndWhisker Chart.
Workbookworkbook=newWorkbook(); workbook.loadFromFile("input.xlsx"); Worksheetsheet=workbook.getWorksheets().get(0); ChartofficeChart=sheet.getCharts().add(); //Setthecharttitle officeChart.setChartTitle("YearlyVehicleSales"); //SetcharttypeasBoxandWhisker officeChart.setChartType(ExcelChartType.BoxAndWhisker); //Setdatarangeintheworksheet officeChart.setDataRange(sheet.getRange().get("A1:E17")); //BoxandWhiskersettingsonfirstseries ChartSerieseriesA=officeChart.getSeries().get(0); seriesA.getDataFormat().showInnerPoints(false); seriesA.getDataFormat().showConnectorLines(true); seriesA.getDataFormat().showMeanMarkers(true); seriesA.getDataFormat().showMeanLine(false); seriesA.getDataFormat().setQuartileCalculationType(ExcelQuartileCalculation.ExclusiveMedian); //BoxandWhiskersettingsonsecondseries ChartSerieseriesB=officeChart.getSeries().get(1); seriesB.getDataFormat().showInnerPoints(false); seriesB.getDataFormat().showConnectorLines(true); seriesB.getDataFormat().showMeanMarkers(true); seriesB.getDataFormat().showMeanLine(false); seriesB.getDataFormat().setQuartileCalculationType(ExcelQuartileCalculation.InclusiveMedian); //BoxandWhiskersettingsonthirdseries ChartSerieseriesC=officeChart.getSeries().get(2); seriesC.getDataFormat().showInnerPoints(false); seriesC.getDataFormat().showConnectorLines(true); seriesC.getDataFormat().showMeanMarkers(true); seriesC.getDataFormat().showMeanLine(false); seriesC.getDataFormat().setQuartileCalculationType(ExcelQuartileCalculation.ExclusiveMedian); workbook.saveToFile("output.xlsx",FileFormat.Version2016); |
New feature | - | Supports creating the TreeMap Chart.
Workbookworkbook=newWorkbook(); workbook.loadFromFile("input.xlsx"); Worksheetsheet=workbook.getWorksheets().get(0); ChartofficeChart=sheet.getCharts().add(); //SetcharttypeasTreeMap officeChart.setChartType(ExcelChartType.TreeMap); //Setdatarangeintheworksheet officeChart.setDataRange(sheet.getRange().get("A1:C11")); //Setthecharttitle officeChart.setChartTitle("Areabycountries"); //SettheTreemaplabeloption officeChart.getSeries().get(0).getDataFormat().setTreeMapLabelOption(ExcelTreeMapLabelOption.Banner); //Formattingdatalabels officeChart.getSeries().get(0).getDataPoints().getDefaultDataPoint().getDataLabels().setSize(8); workbook.saveToFile("output.xlsx",FileFormat.Version2016); |
New feature | - | Supports creating the SunBurst Chart.
Workbookworkbook=newWorkbook(); workbook.loadFromFile("input.xlsx"); Worksheetsheet=workbook.getWorksheets().get(0); ChartofficeChart=sheet.getCharts().add(); //SetcharttypeasSunburst officeChart.setChartType(ExcelChartType.SunBurst); //Setdatarangeintheworksheet officeChart.setDataRange(sheet.getRange().get("A1:D16")); //Setthecharttitle officeChart.setChartTitle("Salesbyannual"); //Formattingdatalabels officeChart.getSeries().get(0).getDataPoints().getDefaultDataPoint().getDataLabels().setSize(8); //Hidingthelegend officeChart.hasLegend(false); workbook.saveToFile("output.xlsx",FileFormat.Version2016); |
New feature | - | Supports creating the Funnel Chart.
Workbook workbook = new Workbook(); workbook.loadFromFile("input.xlsx"); Worksheet sheet = workbook.getWorksheets().get(0); Chart officeChart = sheet.getCharts().add(); //Set chart type as Funnel officeChart.setChartType(ExcelChartType.Funnel); //Set data range in the worksheet officeChart.setDataRange(sheet.getRange().get("A1:B6")); //Set the chart title officeChart.setChartTitle("Funnel"); //Formatting the legend and data label option officeChart.hasLegend(false); officeChart.getSeries().get(0).getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true); officeChart.getSeries().get(0).getDataPoints().getDefaultDataPoint().getDataLabels().setSize(8); workbook.saveToFile("output.xlsx", FileFormat.Version2016); |
Bug | SPIREXLS-3443 SPIREXLS-3575 SPIREXLS-3620 |
Fixes the issue that the content was incorrect after converting Excel to PDF. |
Bug | SPIREXLS-3612 | Fixes the issue that the content was incorrect after converting Excel to image. |
Bug | SPIREXLS-3642 | Fixes the issue that the obtained signature information were not correct. |
Bug | SPIREXLS-3653 | Fixes the issue that the application threw "OutOfMemoryError" when saving an excel file. |
Bug | SPIREXLS-3664 | Fixes the issue that the obtained formula values were incorrect. |
Bug | SPIREXLS-3650 | Fixes the issue that the text position was incorrect after converting excel to image. |
Bug | SPIREXLS-3691 | Fixes the issue that the application threw "NullPointerException" when appending a rich text. |
Bug | SPIREXLS-3692 | Fixes the issue that the pagination was inconsistent after converting excel to PDF. |
Bug | SPIREXLS-3713 | Fixes the issue that the application threw "NullPointerException" when copying a worksheet. |
Bug | SPIREXLS-3714 | Fixes the issue that the application threw "NullPointerException" when calculating the PivotTable data. |
Bug | SPIREXLS-3725 | Fixes the issue that it didn't take effect when setting "false" for chart.hasChartTitle(). |
Spire.Doc for Java
Category | ID | Description |
Bug | SPIREDOC-4423 | Fixes the issue that the application threw "StackOverflowError" when updating Table of Contents. |
Bug | SPIREDOC-7199 | Fixes the issue that the text position was incorrect after converting Word to PDF. |
Bug | SPIREDOC-7220 SPIREDOC-7419 |
Fixes the issue that the pagination was inconsistent after converting Word to PDF. |
Bug | SPIREDOC-7265 | Fixes the issue that the lines were lost after converting Word to PDF. |
Bug | SPIREDOC-7278 | Fixes the issue that the image was lost after converting Word to PDF. |
Bug | SPIREDOC-7315 SPIREDOC-7439 SPIREDOC-7440 |
Fixes the issue that the content was incorrect after converting Word to PDF. |
Bug | SPIREDOC-7318 SPIREDOC-7321 |
Fixes the issue that the content were lost after converting Word to PDF. |
Bug | SPIREDOC-7441 | Fixes the issue that the image content was incorrect after converting Word to PDF. |
Bug | SPIREDOC-7444 | Fixes the issue that the application threw "X509CertImpl" when using on IBM websphere. |
Bug | SPIREDOC-7458 | Fixes the issue that the application threw "Unsupported file format" when converting Word to PDF. |
Bug | SPIREDOC-7477 SPIREDOC-7478 |
Fixes the issue that the checkbox was lost after converting Word to PDF. |
Bug | SPIREDOC-7497 | Fixes the issue that the combination image was lost after converting Word to HTMLl. |
Spire.PDF for Java
Category | ID | Description |
New feature | SPIREPDF-4915 | Supports converting a pdf to a grayscale document.
PdfGrayConverter converter = new PdfGrayConverter("ConvertToGrayPdf.pdf"); converter.toGrayPdf("output.pdf"); |
Bug | SPIREPDF-4741 | Fixes the issue that the obtained ComBoxField item value was incorrect. |
Bug | SPIREPDF-4873 | Optimizes the memory releasing issue when converting PDF to PDFA1B. |
Bug | SPIREPDF-4926 | Fixes the issue that the application threw "String index out of range" when getting PDF used fonts. |
Bug | SPIREPDF-4949 | Fixes the issue that the format was incorrect after setting middle for both vertical alignment and horizontal alignment. |
Bug | SPIREPDF-4956 | Fixes the issue that the application threw "OutOfMemoryError" after compressing images. |
Bug | SPIREPDF-4967 | Fixes the issue that the obtained PDF conformance was incorrect. |
Bug | SPIREPDF-4974 | Fixes the issue that the application threw "NullPointerException" when getting PDF image information. |
Spire.Presentation for Java
Category | ID | Description |
Bug | SPIREPPT-1797 | Optimizes the time consumption when converting PPT file to PDF. |
Bug | SPIREPPT-1825 | Fixes the issue that the obtained vertical alignment value of the text frame was incorrect. |
Bug | SPIREPPT-1832 | Fixes the issue that the application threw "DocumentReadException" when loading a PPT file. |
Bug | SPIREPPT-1836 SPIREPPT-1849 |
Fixes the issue that the content was incorrect after converting PPT shape to image. |
Bug | SPIREPPT-1839 | Fixes the issue that the application threw "Argument width" error when converting a PPT file to image. |
Bug | SPIREPPT-1847 | Fixes the issue that the content was blank after converting PPT shape to image. |
Bug | SPIREPPT-1871 | Fixes the issue that some characters were garbled after converting PPTX file to image. |
Bug | SPIREPPT-1873 | Fixes the issue that the output was blank after converting shape to image. |
Bug | SPIREPPT-1881 | Fixes the issue that the application hung a long time when converting shape to image. |