如果您是使用Java應用程序中使用Excel的Java應用程序開發人員,則您有興趣提供在應用程序中操縱Excel數據的功能。 Excel可以讓您格式化單元格式,將單元格的類型設置為不同的數據類型,填充單元格不同的顏色等等。 Apache POI用作Java和Excel之間的橋樑,提供工具以編程方式操縱Excel XLSX文件。在此博客系列中,我們將使用Java中的Apache Poi推出Excel Cell操作的藝術。讓我們潛入並發現代碼和電子表格的協同作用!
#目錄{.wp-block頭} 在整個博客中,我們將詳細介紹代碼示例,並在以下內容中進行解釋: 1.在Excel文件中創建單元格 2.在Excel中創建日期單元 3.使用不同類型的單元格 4.設置細胞外觀
在Java中使用Excel文件中的單元格
在Excel文件中創建單元格
//Create Cells
XSSFWorkbook wb = new XSSFWorkbook();
XSSFCreationHelper createHelper = wb.getCreationHelper();
XSSFSheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(0);
// Create a cell and put a value in it.
Cell cell = row.createCell(0);
cell.setCellValue(1);
row.createCell(1).setCellValue(1.2);
row.createCell(2).setCellValue(createHelper.createRichTextString("This is a string"));
row.createCell(3).setCellValue(true);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
wb.write(fileOut);
}
以上Java代碼段展示了Apache POI API在Excel工作簿中使用單元格的用法。該代碼創建了一個新的Excel工作簿(` XSSFWorkbook `),在工作簿中初始化了一個表格,然後用各種類型的數據填充單元格。首先,該代碼創建一個名為“ 新表 ”的新表格。然後,它在表上的索引0處生成一個行,然後繼續填充該行中的單元格。使用` setCellvalue `方法為第一個單元格(索引0)分配了1個整數值為1。相比之下,第二個單元格(索引1)在` createCell `方法中直接設置為1.2的小數為1.2。第三個單元格(索引2)包含一個使用\ createrichTextString xssfCreationHelper 實例\ createrichTextString ``實例中創建的字符串值“這是一個字符串”。最後,第四個單元格(索引3)填充了布爾值“ true”。設置了單元格值後,代碼將結果的工作簿寫入了名為“ Workbook.xlsx”的Excel文件,使用` fileOutputstream**`。
創建日期類型單元格
XSSFWorkbook wb = new XSSFWorkbook();
//Workbook wb = new XSSFWorkbook();
CreationHelper createHelper = wb.getCreationHelper();
org.apache.poi.ss.usermodel.Sheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(0);
// Create a cell and put a date value in it. The first cell is not styled
// as a date.
Cell cell = row.createCell(0);
cell.setCellValue(new Date());
// we style the second cell as a date (and time). It is important to
// create a new cell style from the workbook otherwise you can end up
// modifying the built in style and effecting not only this cell but other cells.
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setDataFormat(
createHelper.createDataFormat().getFormat("m/d/yy h:mm"));
cell = row.createCell(1);
cell.setCellValue(new Date());
cell.setCellStyle(cellStyle);
//you can also set date as java.util.Calendar
cell = row.createCell(2);
cell.setCellValue(Calendar.getInstance());
cell.setCellStyle(cellStyle);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
wb.write(fileOut);
}
此Java代碼片段展示了Apache POI API在Excel工作簿中使用日期類型單元格的用法。該代碼首先創建一個新的Excel Workbook(` XSSFWorkbook `)。 第一個單元格(索引0)旨在保持日期值。 ` date `代表當前日期和時間的對象使用` setCellValue `方法將當前日期和時間設置為單元格值。該單元格沒有明確地將其視為日期。 對於第二個單元格(索引1),使用工作簿的`createCellstyle `創建了新的單元格樣式(`cellStyle `)。然後,將此樣式配置為使用`setDataFormat `方法具有特定的日期和時間格式。 `createAtaFormat()。getFormat(“ M/d/yy H:mm”)`process創建了一種自定義日期格式,其格式模式為“ M/d/yy H:mm”。第二個單元格是分配當前日期和時間值,並使用`setCellstyle `方法將新創建的單元格樣式應用於它。 第三個單元格(索引2)展示了一種使用`java.util.calendar `填充日期類型細胞的替代方法。與第二個單元格類似,也將自定義單元格式應用於該單元格。
與不同類型的單元格一起工作
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("new sheet");
Row row = sheet.createRow(2);
row.createCell(0).setCellValue(1.1);
row.createCell(1).setCellValue(new Date());
row.createCell(2).setCellValue(Calendar.getInstance());
row.createCell(3).setCellValue("a string");
row.createCell(4).setCellValue(true);
row.createCell(5).setCellType(CellType.ERROR); // Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
wb.write(fileOut);
}
在此代碼樣本中,如以下步驟所述,使用Apache POI API將不同的單元格樣式應用於Excel文件中的單元格。 1.使用` createrow (2)`在表格上的索引2上創建一行。然後使用以下數據在此行中填充細胞。 2.使用` setCellvalue `方法將第一個單元格(索引0)分配為1.1。 3.在第二個單元格(索引1)中,當前日期和時間是通過` setCellvalue `方法使用`date `object插入的。 4.第三個單元格(索引2)包含`calendar `實例的日期和時間,使用` setCellvalue `方法設置。 5.第四個單元格(索引3)保存文本“ a String”。 6.指定第五個單元格(索引4)以“ true”為布爾值。 7.向前邁進,通過調用` setCellType `方法將特定的單元格類型分配給第六個單元格(索引5)。使用` cellType.Error `枚舉將該單元格配置為錯誤單元格,這表明它將顯示錯誤值。 最後,使用` fileOutputStream `將修改後的工作簿寫入名為“ Workbook.xlsx”的文件。總而言之,此代碼示例演示瞭如何建立Excel工作簿,應用不同的單元格式以適應各種數據類型,並最終將修改後的工作簿保存到文件中。這個實用的插圖展示了Apache POI庫在Java中使用Excel文件的功能。
設置小區外觀
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(1);
// Aqua background
CellStyle style = wb.createCellStyle();
style.setFillBackgroundColor(IndexedColors.AQUA.getIndex());
style.setFillPattern(FillPatternType.BIG_SPOTS);
Cell cell = row.createCell(1);
cell.setCellValue("X");
cell.setCellStyle(style);
// Orange "foreground", foreground being the fill foreground not the font color.
style = wb.createCellStyle();
style.setFillForegroundColor(IndexedColors.ORANGE.getIndex());
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
cell = row.createCell(2);
cell.setCellValue("X");
cell.setCellStyle(style);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
wb.write(fileOut);
}
wb.close();
該代碼段演示瞭如何使用Java中的Apache POI庫在Excel文件中操縱單元格的外觀。這是使用以下步驟來實現的。 1.使用`createrow(1)`在表上的索引1上創建一行。以下更改是對該行內的單元格進行的。 2.對於第一個單元格(索引1),使用`wb.createcellstyle()`創建自定義單元格樣式。該樣式使用`setFillbackgroundColor `and 'indexedColors.aqua.getIndex()``。使用`setFillPattern(fillPatterntype.big_spots)`將背景的模式設置為“大點”。在此行中以索引1的形式創建一個單元格,並填充值“ x”。先前創建的樣式使用`setCellstyle `應用於此單元格。 3.對於第二個單元格(索引2),創建了一種新的單元格樣式。該樣式使用`setFillForegroundColor `and 'indexedColors.orange.getIndex()``。使用`setFillPattern(fillPatterntype.solid_foreground)將填充模式設置為“固體前景”。另一個單元格是在同一行的索引2上創建的,並用值“ x”填充。然後使用`setCellstyle `將新生成的樣式分配給該單元格。 配置單元格出現後,修改後的工作簿將使用`fileOutputStream `寫入名為“ Workbook.xlsx”的文件。 總而言之,此代碼示例展示瞭如何使用Apache POI庫來操縱Excel文件中的單元格。所展示的技術涉及創建自定義的單元格式來控制背景和前景顏色,並填充圖案,從而在使用Java的視覺自定義Excel電子表格時具有靈活性。
結論
在上述所有apache POI庫的Java示例中,我們演示瞭如何與Java應用程序中的Excel文件內容一起使用。代碼樣本顯示瞭如何在Excel文件中創建單元格,將這些外觀設置為外觀,將單元格樣式設置為不同的數據類型,例如字符串,數字,十進制等,以及如何將單元格類型設置為日期類型。我們將添加更多示例,以使用Apache POI使用Java,請繼續關注。