隱藏數據透視表數據!Java版Excel文檔處理控件Aspose.Cells這些不得不看的新功能

Aspose.Cells for Java(點擊下載是Excel電子表格處理API,開發人員能夠在其本身的應用程序中嵌入讀取,編寫,操做,轉換和打印電子表格的功能,而無需Microsoft Excel應用程序。less

在最新發布的v19.11中,新增了許多很是有趣且實用的新功能,例如提供基於某些條件的排序和隱藏數據來獲取報表和演示的緊湊信息,能夠加強數據透視表的處理;使用QueryTable做爲數據源讀寫表;檢索OData鏈接信息等等。接下來咱們用示例來演示如何實現這些新功能。ide


在數據透視表中排序和隱藏數據

在某些狀況下,數據透視表中須要清晰的信息。咱們可能須要某些功能來對數據透視表中的數據進行排序,而後根據某些條件隱藏行。如下示例代碼演示了此功能:函數

// The path to the output directory.
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;

// Sorting score in descending
PivotField field = pivotTable.getRowFields().get(0);
field.setAutoSort(true);
field.setAscendSort(false);
field.setAutoSortField(0);

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

// Hiding rows with score less than 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();

// Saving the Excel file
workbook.save(outputDir + "PivotTableHideAndSort_out.xlsx");

下圖顯示了對示例數據運行此代碼以前和以後的數據透視表。spa

隱藏數據透視表數據!Java版Excel文檔處理控件Aspose.Cells這些不得不看的新功能

查看上述代碼片斷中使用的源和輸出excel文件,請點擊這裏下載excel

帶有查詢表數據源的讀寫表

具備查詢表做爲數據源的表很是常見。咱們可能須要閱讀這些表並進行修改,例如顯示總數等。此功能較早可用,可是提供了對XLS文件的支持。如下示例代碼讀取一個表,而後對其進行更改以在末尾顯示總數。orm

// The path to the output directory.
String sourceDir = Utils.Get_SourceDirectory();
String outputDir = Utils.Get_OutputDirectory();

// Load workbook object
Workbook workbook = new Workbook(sourceDir + "SampleTableWithQueryTable.xls");

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

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

// Check the data source type if it is query table
if (table.getDataSourceType() == TableDataSourceType.QUERY_TABLE)
{
	table.setShowTotals(true);
}

// Save the file
workbook.save(outputDir + "SampleTableWithQueryTable_out.xls");

下圖顯示了setShowTotals()函數的工做方式:blog

隱藏數據透視表數據!Java版Excel文檔處理控件Aspose.Cells這些不得不看的新功能

獲取OData鏈接信息

OData可用於從RESTful API獲取提要或數據,也可在Excel文件中使用。可使用Apose.Cells API和Workbook的DataMashup類從Excel文件中檢索此信息。從具備PowerQueryFormula和PowerQueryFormulaItem的PowerQueryFormulas屬性中獲取所需的信息。排序

// The path to the directories.
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());
    }
}

下圖顯示了一個示例文件,該文件在上面的代碼示例中用於獲取OData鏈接信息。開發

隱藏數據透視表數據!Java版Excel文檔處理控件Aspose.Cells這些不得不看的新功能

這是使用示例文件的程序輸出:文檔

隱藏數據透視表數據!Java版Excel文檔處理控件Aspose.Cells這些不得不看的新功能


還想要更多嗎?若是您有下載或購買需求,請隨時加入Aspose技術交流羣642018183,咱們很高興爲您提供查詢和諮詢。

相關文章
相關標籤/搜索