Den här bilden har ett tomt alt-attribut; dess filnamn är asposecells-for-java-e1558954178996.jpg

Aspose.Cells for Java v19.11 släpps som innehåller många nya funktioner och uppgraderingar. Bearbetningen av pivottabeller förbättras genom att tillhandahålla sorterings- och döljdata baserat på vissa kriterier för att få kompakt information för rapportering och presentationer. Läsa och skriva till tabeller med QueryTable som datakälla är tillgängligt nu. Detta är inte slutet på den här utgåvan utan början på en lång lista med nya funktioner som att modifiera den befintliga valideringen genom att lägga till CellArea, hämta information om OData-anslutningen och få textbredd på cellvärde för bättre layouter. All information om den här versionen finns i release notes som publiceras med varje ny release. Låt oss ta en titt på dessa nya spännande funktioner en efter en.

Sortera och dölj data i Excel-pivottabell med Java

Det finns fall där tydlig information krävs i pivottabellen. Vi kan kräva vissa funktioner för att sortera data i pivottabellen och sedan dölja rader mot vissa kriterier. Följande exempelkod visar denna funktion

// För fullständiga exempel och datafiler, gå till https://github.com/aspose-cells/Aspose.Cells-for-Java
// Sökvägen till utdatakatalogen.
String sourceDir = Utils.Get_SourceDirectory();
String outputDir = Utils.Get_OutputDirectory();

Workbook workbook = new Workbook(sourceDir + "PivotTableHideAndSortSample.xlsx");

Worksheet worksheet = workbook.getWorksheets().get(0);

PivotTable pivotTable = worksheet.getPivotTables().get(0);
CellArea dataBodyRange = pivotTable.getDataBodyRange();
int currentRow = 3;
int rowsUsed = dataBodyRange.EndRow;

// Sortering av poäng i fallande
PivotField field = pivotTable.getRowFields().get(0);
field.setAutoSort(true);
field.setAscendSort(false);
field.setAutoSortField(0);

pivotTable.refreshData();
pivotTable.calculateData();

// Döljer rader med poäng mindre än 60
while (currentRow < rowsUsed)
{
	Cell cell = worksheet.getCells().get(currentRow, 1);
	double score = (double) cell.getValue();
	if (score < 60)
	{
		worksheet.getCells().hideRow(currentRow);
	}
	currentRow++;
}

pivotTable.refreshData();
pivotTable.calculateData();

// Sparar Excel-filen
workbook.save(outputDir + "PivotTableHideAndSort_out.xlsx");

Följande bild visar pivottabellen före och efter att den här koden körts på ett exempeldata.

Besök följande artikel för mer information och exempelfiler.

Läs och skriv tabell med datakälla för frågetabell

Tabeller som har en frågetabell som datakälla är mycket vanliga. Vi kan behöva läsa sådana tabeller och ändra dem som att visa totalen etc. Tidigare var denna funktion tillgänglig men stöd för XLS-filer tillhandahålls. Här är en exempelkod som läser en tabell och sedan ändrar den för att visa summan i slutet.

// För fullständiga exempel och datafiler, gå till https://github.com/aspose-cells/Aspose.Cells-for-Java
// Sökvägen till utdatakatalogen.
String sourceDir = Utils.Get_SourceDirectory();
String outputDir = Utils.Get_OutputDirectory();

// Ladda arbetsboksobjekt
Workbook workbook = new Workbook(sourceDir + "SampleTableWithQueryTable.xls");

Worksheet worksheet = workbook.getWorksheets().get(0);

ListObject table = worksheet.getListObjects().get(0);

// Kontrollera datakällans typ om det är frågetabell
if (table.getDataSourceType() == TableDataSourceType.QUERY_TABLE)
{
	table.setShowTotals(true);
}

// Spara filen
workbook.save(outputDir + "SampleTableWithQueryTable_out.xls");

Följande bild visar hur setShowTotals()-funktionen fungerar:

Du kan få exempelfilerna och mer information i följande artikel:

Hämta information om OData-anslutning

OData kan användas för att hämta flödet eller data från RESTful API som också kan användas i Excel-fil. Denna information kan hämtas från Excel-filen med Aspose.Cells API med DataMashup-klassen i Workbook. Få den önskade informationen från PowerQueryFormulas-egendomen med PowerQueryFormula och PowerQueryFormulaItem.

Följande kodavsnitt visar användningen av dessa klasser för att hämta OData-informationen.

// För fullständiga exempel och datafiler, gå till https://github.com/aspose-cells/Aspose.Cells-for-Java
// Vägen till katalogerna.
String sourceDir = Utils.Get_SourceDirectory();

Workbook workbook = new Workbook(sourceDir + "ODataSample.xlsx");
PowerQueryFormulaCollction PQFcoll = workbook.getDataMashup().getPowerQueryFormulas();
for (Object obj : PQFcoll)
{
    PowerQueryFormula PQF = (PowerQueryFormula)obj;
    System.out.println("Connection Name: " + PQF.getName());
    PowerQueryFormulaItemCollection PQFIcoll = PQF.getPowerQueryFormulaItems();
   for (Object obj2 : PQFIcoll)
    {
        PowerQueryFormulaItem PQFI = (PowerQueryFormulaItem)obj2;
        System.out.println("Name: " + PQFI.getName());
        System.out.println("Value: " + PQFI.getValue());
    }
}

Följande bild visar en exempelfil som används i ovanstående kodexempel för att hämta OData-anslutningsinformationen.

Här är programmets utdata med hjälp av exempelfilen:

Den här artikeln innehåller en exempelfil och mer information för att kontrollera den här funktionen:

Lägg till CellArea till befintlig validering

Anta att du har en Excel-fil som har validering som fungerar bra. Aspose.Cells utför alltid en kontroll för att verifiera om området redan finns där eller inte när ett cellområde läggs till i valideringen. Du kan drabbas av prestanda under denna kontroll om det finns ett stort antal valideringar i din Excel-fil. För att hantera detta problem finns det ett behov av att konfigurera API:et för att få kontroll över att utföra denna kontroll. Metoden Validation.AddAreaCellArea cellArea, bool checkIntersection, bool checkEdge)) finns där för att få denna kontroll eftersom parametern checkIntersection dirigerar API:et att kontrollera skärningspunkten mellan detta nyligen tillagda område och befintliga områden. Om du ställer in den här parametern till false, kommer kontrollen av andra områden att inaktiveras. Om du vill kontrollera de tillämpade områdena, ställ in checkEdge-parametern till true. Observera att interna inställningar byggs om om det övre vänstra området återställs till det nya området. Men om du är säker på att det nya området inte är det övre vänstra området, ställ sedan in värdet på egenskapen checkEdge till false.

Du kan prova följande exempelkod som visar att du lägger till nytt CellArea till en validering som redan finns där i Excel-filen.

// För fullständiga exempel och datafiler, gå till https://github.com/aspose-cells/Aspose.Cells-for-Java
// Vägen till katalogerna.
String sourceDir = Utils.Get_SourceDirectory();
String outputDir = Utils.Get_OutputDirectory();

Workbook workbook = new Workbook(sourceDir + "ValidationsSample.xlsx");

// Öppna första kalkylbladet.
Worksheet worksheet = workbook.getWorksheets().get(0);

// Åtkomst till valideringssamlingen för kalkylbladet
Validation validation = worksheet.getValidations().get(0);

// Skapa ditt cellområde.
CellArea cellArea = CellArea.createCellArea("D5", "E7");

// Lägger till cellområdet till validering
validation.addArea(cellArea, false, false);

// Spara utdataarbetsboken.
workbook.save(outputDir + "ValidationsSample_out.xlsx");

Ta en titt på följande artikel för mer information och exempelfil för att testa den här funktionen.

Få textbredd på cellvärde

Bättre layout för datapresentation är målet för varje utvecklare. För detta krävs stöd i API:et för att beräkna cellbredden vid formatering av rapporter/presentationer. För att hjälpa utvecklarna tillhandahåller Aspose.Cells en funktion GetTextWidth() i klassen CellsHelper. Genom att använda denna funktion kommer utvecklaren att få textbredden i en cell, baserat på textens längd och stil. Följande exempelkod visar användningen av CellsHelper.GetTextWidth) genom att få textbredden för värdet i en cell.

Följande exempelkod visar denna funktion:

// För fullständiga exempel och datafiler, gå till https://github.com/aspose-cells/Aspose.Cells-for-Java
// Sökvägen till utdatakatalogen.
String sourceDir = Utils.Get_SourceDirectory();Workbook workbook = new Workbook(sourceDir + "GetTextWidthSample.xlsx");

System.out.println("Text width: " + CellsHelper.getTextWidth(workbook.getWorksheets().get(0).getCells().get("A1").getStringValue(), workbook.getDefaultStyle().getFont(), 1));

Du kan ladda ner exempelfilen här.

Andra förbättringar

Följande är några förbättringar och förbättringar som görs i den här utgåvan:

  • Cells.importCSV-funktionen är förbättrad för att undvika undantag “strängvärde får inte överstiga 255 tecken”
  • Förbättringar görs i prestandan för Cells.removeDupilcates för stora dataset
  • Radiell grafrendering till HTML är förbättrad
  • Mer noggrannhet läggs till i skalningen av axeln under återgivningen till PNG
  • Förbättringar görs för att undvika korruption efter uppdatering av källdata för en pivottabell.
  • Få mer exakt ryskt (anpassat) datumformat med den här utgåvan
  • LoadFilter görs felfritt för att beakta det önskade arket
  • Korrekt ramar bibehålls när Excel-fil konverteras till EMF
  • SheetRender förbättrades för att ge ett mer exakt sidantal
  • Återgivningen av diagrammet till en bild förbättras. Du kommer att få dataetiketter med samma stil och korrekta värden i utdatabilden
  • Cell.setHtmlString()-funktionen förbättrad för bearbetning av hyperlänkar och HTML-taggar/skript.

Följande är några viktiga resurser som kan hänvisas till när du testar den nya versionen: