Excel處理組件開發(fā)工具Aspose.Cells功能演示:使用Java創(chuàng)建MS Excel文件
Aspose.Cells for JavaExcel電子表格處理API,它允許Java開發(fā)人員在自己的Java應(yīng)用程序中嵌入可讀取、寫入和操作Excel電子表格的能力,而無需依賴Microsoft Excel。
MS Excel電子表格使保留和共享大量表格數(shù)據(jù)變得更加容易。不僅如此,您還可以執(zhí)行各種操作,例如應(yīng)用公式,生成圖表和圖形,對數(shù)據(jù)進行排序和過濾等等。
在本文中,將學(xué)習(xí)如何在Java應(yīng)用程序中實現(xiàn)Excel自動化功能。閱讀本文之后,將可以使用Java從頭開始創(chuàng)建MS Excel XLSX或XLS文件。此外,本文還將介紹如何在Excel工作表中更新現(xiàn)有的Excel文件,生成圖表,應(yīng)用公式以及添加數(shù)據(jù)透視表。
- Java API創(chuàng)建Excel文件
- 使用Java創(chuàng)建Excel XLSX或XLS文件
- 使用Java編輯現(xiàn)有的Excel文件
- 使用Java在Excel文件中創(chuàng)建圖表
- 使用Java在XLSX中創(chuàng)建數(shù)據(jù)透視表
- 使用Java在XLSX中為單元格添加公式
Java API創(chuàng)建Excel文件
Aspose.Cells for Java是功能強大的電子表格處理API,可讓您在沒有MS Office的情況下創(chuàng)建或修改Excel文件。該API支持添加圖表,圖形,公式,并以編程方式執(zhí)行其他電子表格操作操作。首先,您需要在Java環(huán)境中為Java
API配置Aspose.Cells。您可以通過下載JAR文件或添加以下Maven存儲庫規(guī)范來進行設(shè)置:
使用Java創(chuàng)建Excel XLSX或XLS
MS Excel XLSX / XLS文件稱為工作簿,每個工作簿均由一個或多個工作表組成。工作表還包含行和列,以將數(shù)據(jù)保持為單元格形式。因此,讓我們從創(chuàng)建一個簡單的工作簿開始。以下是從頭開始創(chuàng)建Excel XLSX文件的步驟。
- 創(chuàng)建一個Workbook 類的實例
- 使用Workbook.getWorksheets.get() 方法訪問所需的工作表
- 使用單元格的標(biāo)識符(例如A1,B3等)將值放在工作表中的所需單元格中
- 使用Workbook.save() 方法將工作簿另存為Excel文件
下面的代碼示例演示如何使用Java創(chuàng)建Excel XLSX文件。
// Create a new workbook Workbook workbook = new Workbook(); // Add value in the cell workbook.getWorksheets().get(0).getCells().get("A1").putValue("Hello World!"); // Save as Excel XLSX file workbook.save("Excel.xlsx");
讓我們看一下此代碼的屏幕截圖:
使用Java編輯Excel XLSX文件
現(xiàn)在讓我們看一下如何修改數(shù)據(jù)或?qū)?shù)據(jù)插入到現(xiàn)有的MS Excel文件中。為此,您只需加載文件,訪問所需的工作表并保存更新的文件即可。以下是修改現(xiàn)有Excel文件的步驟。
- 使用Workbook 類打開Excel文件 。
- 分別使用工作表和單元格類訪問工作表和單元格
- 將更新后的工作簿保存為Excel .xlsx文件
下面的代碼示例演示如何使用Java編輯現(xiàn)有的MS Excel文件。
// Create a new workbook Workbook workbook = new Workbook("workbook.xls"); // Get the reference of "A1" cell from the cells of a worksheet Cell cell = workbook.getWorksheets().get(0).getCells().get("A1"); // Set the "Hello World!" value into the "A1" cell cell.setValue("updated cell value."); // Write the Excel file workbook.save("Excel.xls", FileFormatType.EXCEL_97_TO_2003);
使用Java在Excel XLSX中創(chuàng)建圖表或圖形
電子表格中的圖表用于直觀地表示工作表中存儲的數(shù)據(jù)。它們使輕松輕松地分析大量數(shù)據(jù)變得容易。Aspose.Cells for Java提供了多種圖表,您可以通過編程在Excel文件中創(chuàng)建這些圖表。以下是在Excel XLSX文件中創(chuàng)建圖表的步驟。
- 使用Workbook 類創(chuàng)建一個新的Excel文件或加載一個現(xiàn)有的文件 。
- 將數(shù)據(jù)添加到工作表(可選)。
- 使用Worksheet.getCharts() 方法獲取工作表的圖表集合。
- 使用Worksheet.getCharts().add() 方法添加新圖表 。
- 從集合中獲取新創(chuàng)建的圖表。
- 指定單元格的范圍以為圖表設(shè)置NSeries。
- 將工作簿另存為Excel .xlsx 文件。
下面的代碼示例演示如何使用Java在Excel XLSX中創(chuàng)建圖表。
// Create a new workbook Workbook workbook = new Workbook("workbook.xlsx"); // Obtaining the reference of the first worksheet WorksheetCollection worksheets = workbook.getWorksheets(); Worksheet sheet = worksheets.get(0); // Adding some sample value to cells Cells cells = sheet.getCells(); Cell cell = cells.get("A1"); cell.setValue(50); cell = cells.get("A2"); cell.setValue(100); cell = cells.get("A3"); cell.setValue(150); cell = cells.get("B1"); cell.setValue(4); cell = cells.get("B2"); cell.setValue(20); cell = cells.get("B3"); cell.setValue(50); // get charts in worksheet ChartCollection charts = sheet.getCharts(); // Adding a chart to the worksheet int chartIndex = charts.add(ChartType.PYRAMID, 5, 0, 15, 5); Chart chart = charts.get(chartIndex); // Adding NSeries (chart data source) to the chart ranging from "A1" // cell to "B3" SeriesCollection serieses = chart.getNSeries(); serieses.add("A1:B3", true); // Write the Excel file workbook.save("Excel_with_Chart.xlsx");
使用Java在Excel XLSX中創(chuàng)建數(shù)據(jù)透視表
Excel工作表中的數(shù)據(jù)透視表具有多種用途,例如向數(shù)據(jù)添加過濾器,計算總計,匯總數(shù)據(jù)等??梢允褂霉ぷ鞅碇袉卧竦姆秶鷣韯?chuàng)建數(shù)據(jù)透視表。以下是在Excel工作表中創(chuàng)建數(shù)據(jù)透視表的步驟。
- 創(chuàng)建一個新的工作簿或加載一個現(xiàn)有的文件。
- 在工作表中插入數(shù)據(jù)(可選)。
- 使用Worksheet.getPivotTables()方法訪問透視表集合。
- 使用Worksheet.getPivotTables().add()方法在工作表中添加一個新的數(shù)據(jù)透視表。
- 為數(shù)據(jù)透視表提供數(shù)據(jù)。
- 保存工作簿。
下面的代碼示例演示如何使用Java在Excel中創(chuàng)建數(shù)據(jù)透視表。
// Create a new workbook Workbook workbook = new Workbook("workbook.xlsx"); // Get the first worksheet. Worksheet sheet = workbook.getWorksheets().get(0); // Obtaining Worksheet's cells collection Cells cells = sheet.getCells(); // Setting the value to the cells Cell cell = cells.get("A1"); cell.setValue("Sport"); cell = cells.get("B1"); cell.setValue("Quarter"); cell = cells.get("C1"); cell.setValue("Sales"); cell = cells.get("A2"); cell.setValue("Golf"); cell = cells.get("A3"); cell.setValue("Golf"); cell = cells.get("A4"); cell.setValue("Tennis"); cell = cells.get("A5"); cell.setValue("Tennis"); cell = cells.get("A6"); cell.setValue("Tennis"); cell = cells.get("A7"); cell.setValue("Tennis"); cell = cells.get("A8"); cell.setValue("Golf"); cell = cells.get("B2"); cell.setValue("Qtr3"); cell = cells.get("B3"); cell.setValue("Qtr4"); cell = cells.get("B4"); cell.setValue("Qtr3"); cell = cells.get("B5"); cell.setValue("Qtr4"); cell = cells.get("B6"); cell.setValue("Qtr3"); cell = cells.get("B7"); cell.setValue("Qtr4"); cell = cells.get("B8"); cell.setValue("Qtr3"); cell = cells.get("C2"); cell.setValue(1500); cell = cells.get("C3"); cell.setValue(2000); cell = cells.get("C4"); cell.setValue(600); cell = cells.get("C5"); cell.setValue(1500); cell = cells.get("C6"); cell.setValue(4070); cell = cells.get("C7"); cell.setValue(5000); cell = cells.get("C8"); cell.setValue(6430); PivotTableCollection pivotTables = sheet.getPivotTables(); // Adding a PivotTable to the worksheet int index = pivotTables.add("=A1:C8", "E3", "PivotTable2"); // Accessing the instance of the newly added PivotTable PivotTable pivotTable = pivotTables.get(index); // Unshowing grand totals for rows. pivotTable.setRowGrand(false); // Dragging the first field to the row area. pivotTable.addFieldToArea(PivotFieldType.ROW, 0); // Dragging the second field to the column area. pivotTable.addFieldToArea(PivotFieldType.COLUMN, 1); // Dragging the third field to the data area. pivotTable.addFieldToArea(PivotFieldType.DATA, 2); // Write the Excel file workbook.save("Excel_with_Chart.xlsx");
使用Java在Excel文件中添加單元格的公式
Aspose.Cells for Java還允許您使用Excel工作表中的公式。您可以將內(nèi)置功能和附加功能應(yīng)用于單元格。
在Excel中應(yīng)用內(nèi)置函數(shù)
對于使用內(nèi)置函數(shù),您可以簡單地訪問工作表中的所需單元格并使用Cell.setFormula(String)方法添加公式。下面的代碼示例演示如何使用Java設(shè)置內(nèi)置公式。
// Create a new workbook Workbook workbook = new Workbook(); // Add value in the cell workbook.getWorksheets().get(0).getCells().get(0).setFormula("=H7*(1+IF(P7 =$L$3,$M$3, (IF(P7=$L$4,$M$4,0))))"); // Save as Excel XLSX file workbook.save("Excel.xlsx");
在Excel中添加加載項功能
在某些情況下,您必須使用用戶定義的函數(shù)。為此,您將必須使用.xlam(啟用Excel宏的加載項)文件注冊加載項功能,然后將其用于所需的單元格。為了注冊附加功能,Aspose.Cells for Java提供了registerAddInFunction(int,String)和registerAddInFunction(String,String,boolean)方法。下面的代碼示例演示如何使用Java注冊和使用附加功能。
// create a new workbook Workbook workbook = new Workbook(); // Register macro enabled add-in along with the function name int id = workbook.getWorksheets().registerAddInFunction("TESTUDF.xlam", "TEST_UDF", false); // Register more functions in the file (if any) workbook.getWorksheets().registerAddInFunction(id, "TEST_UDF1"); //in this way you can add more functions that are in the same file // Access first worksheet Worksheet worksheet = workbook.getWorksheets().get(0); // Access first cell Cell cell = worksheet.getCells().get("A1"); // Set formula name present in the add-in cell.setFormula("=TEST_UDF()"); // Save as Excel XLSX file workbook.save("Excel.xlsx");
還想要更多嗎?您可以點擊閱讀【2020 · Aspose最新資源整合】,查找需要的教程資源。如果您有任何疑問或需求,請隨時加入Aspose技術(shù)交流群(642018183),我們很高興為您提供查詢和咨詢。