如果您是使用Java应用程序中使用Excel的Java应用程序开发人员,则您有兴趣提供在应用程序中操纵Excel数据的功能。 Excel可以让您格式化单元格式,将单元格的类型设置为不同的数据类型,填充单元格不同的颜色等等。 Apache POI用作Java和Excel之间的桥梁,提供工具以编程方式操纵Excel XLSX文件。在此博客系列中,我们将使用Java中的Apache Poi推出Excel Cell操作的艺术。让我们潜入并发现代码和电子表格的协同作用!

目录

在整个博客中,我们将详细介绍代码示例,并在以下内容中进行解释: 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,请继续关注。

另请参见