结果为:
代码如下:
import java.io.FileOutputStream; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class POI_07_设置单元格文字格式_S4_Test { public static void main(String[] args) throws Exception { POI_07_设置单元格文字格式_S4_Test t = new POI_07_设置单元格文字格式_S4_Test(); t.testColorAndBorder(); t.testCellText(); } public void testColorAndBorder() throws Exception { createIndexedColorExcel(); } public void testCellText() throws Exception { Workbook wb = new XSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); setCellValue(wb, row, 0, "微软雅黑", 22, "测试文本字体\n换行"); setCellValueWithRotate(wb, row, 1, "微软雅黑", 16, "测试文字旋转\n换行", 45); row = sheet.createRow(1); setCellColorAndStyle(wb, row, 0, "宋体", 16, "测试加粗", IndexedColors.BLACK.getIndex(), true, false, false, false, 0, CellStyle.ALIGN_LEFT, CellStyle.VERTICAL_TOP); setCellColorAndStyle(wb, row, 1, "宋体", 16, "测试倾斜", IndexedColors.BLACK.getIndex(), false, true, false, false, 0, CellStyle.ALIGN_RIGHT, CellStyle.VERTICAL_BOTTOM); setCellColorAndStyle(wb, row, 2, "宋体", 16, "测试删除线", IndexedColors.BLACK.getIndex(), false, false, true, false, 0, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER); setCellColorAndStyle(wb, row, 3, "宋体", 16, "测试下划线", IndexedColors.BLUE.getIndex(), false, false, false, true, Font.U_SINGLE, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_JUSTIFY); row = sheet.createRow(3); setCellColorAndStyle(wb, row, 0, "宋体", 16, "测试混合样式", IndexedColors.BLUE.getIndex(), true, true, true, true, Font.U_SINGLE, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER); row = sheet.createRow(4); setCellColorAndStyle(wb, row, 0, "宋体", 16, "测试对齐", IndexedColors.BLUE.getIndex(), true, true, true, true, Font.U_SINGLE, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER); sheet.autoSizeColumn(0); sheet.autoSizeColumn(1); sheet.autoSizeColumn(2); sheet.autoSizeColumn(3); saveWorkBook(wb); } public void setCellValue(Workbook wb, Row row, int cellIndex, String fontName, int fontSize, String cellContent) { Font font = wb.createFont(); font.setFontName(fontName); font.setFontHeightInPoints((short) fontSize); CellStyle cellStyle = wb.createCellStyle(); cellStyle.setWrapText(true);// 换行 cellStyle.setFont(font); Cell cell = row.createCell(cellIndex); cell.setCellValue(cellContent); cell.setCellStyle(cellStyle); // 可以只设置字体信息 // RichTextString richStr = new XSSFRichTextString(cellContent); // richStr.applyFont(font); // cell.setCellValue(richStr); } public void setCellValueWithRotate(Workbook wb, Row row, int cellIndex, String fontName, int fontSize, String cellContent, int rotate) { Font font = wb.createFont(); font.setFontName(fontName); font.setFontHeightInPoints((short) fontSize); CellStyle cellStyle = wb.createCellStyle(); cellStyle.setWrapText(true);// 自动换行 cellStyle.setRotation((short) (Math.abs(rotate))); cellStyle.setFont(font); Cell cell = row.createCell(cellIndex); cell.setCellValue(cellContent); cell.setCellStyle(cellStyle); } public void setCellColorAndStyle(Workbook wb, Row row, int cellIndex, String fontName, int fontSize, String cellContent, int colorIndex, boolean isBold, boolean isItalic, boolean isStrike, boolean isUnderline, int underLineStyle, int hAlign, int vAlign) { Font font = wb.createFont(); font.setFontName(fontName); font.setFontHeightInPoints((short) fontSize); if (colorIndex >= 0) { font.setColor((short) colorIndex); } if (isBold) { font.setBold(true); } if (isItalic) { font.setItalic(true); } if (isStrike) { font.setStrikeout(true); } if (isUnderline) { font.setUnderline((byte) underLineStyle); } CellStyle cellStyle = wb.createCellStyle(); cellStyle.setWrapText(true);// 换行 cellStyle.setFont(font); cellStyle.setAlignment((short) hAlign); cellStyle.setVerticalAlignment((short) vAlign); Cell cell = row.createCell(cellIndex); cell.setCellValue(cellContent); cell.setCellStyle(cellStyle); } public void createIndexedColorExcel() throws Exception { Workbook wb = new XSSFWorkbook(); Sheet sheet = wb.createSheet("cell_fill_color"); sheet.setDefaultColumnWidth(20); int i = 0; for (IndexedColors color : IndexedColors.values()) { Row row = sheet.createRow(i); Cell cell = row.createCell(0); CellStyle style = wb.createCellStyle(); style.setFillForegroundColor(color.getIndex()); style.setFillPattern(CellStyle.SOLID_FOREGROUND); cell.setCellStyle(style); cell = row.createCell(1); cell.setCellValue(color.name()); cell = row.createCell(2); cell.setCellValue(color.getIndex()); i++; } sheet = wb.createSheet("cell_fill_pattern"); sheet.setDefaultColumnWidth(20); for (i = 0; i <= 18; i++) { Row row = sheet.createRow(i * 2); CellStyle style = wb.createCellStyle(); style.setFillForegroundColor(IndexedColors.ROSE.getIndex()); style.setFillPattern((short) i); Cell cell = row.createCell(0); cell.setCellStyle(style); cell = row.createCell(1); cell.setCellValue("cell_fill_pattern_" + i); } sheet = wb.createSheet("cell_border"); sheet.setDefaultColumnWidth(20); for (i = 0; i <= 13; i++) { Row row = sheet.createRow(i * 2); CellStyle style = wb.createCellStyle(); style.setFillForegroundColor(IndexedColors.PINK.getIndex()); style.setBorderBottom((short) i); style.setBorderLeft((short) i); style.setBorderRight((short) i); style.setBorderTop((short) i); Cell cell = row.createCell(0); cell.setCellStyle(style); cell = row.createCell(1); cell.setCellValue("cell_border_" + i); } sheet = wb.createSheet("cell_fill_pattern_border"); sheet.setDefaultColumnWidth(20); for (i = 0; i <= 18; i++) { Row row = sheet.createRow(i * 2); CellStyle style = wb.createCellStyle(); style.setFillForegroundColor(IndexedColors.LIGHT_GREEN.getIndex()); style.setFillPattern((short) i); style.setBorderBottom((short) (i % 14)); style.setBorderLeft((short) (i % 14)); style.setBorderRight((short) (i % 14)); style.setBorderTop((short) (i % 14)); style.setBottomBorderColor(IndexedColors.LIME.getIndex()); style.setLeftBorderColor(IndexedColors.LIME.getIndex()); style.setTopBorderColor(IndexedColors.LIME.getIndex()); style.setRightBorderColor(IndexedColors.LIME.getIndex()); Cell cell = row.createCell(0); cell.setCellStyle(style); cell = row.createCell(1); cell.setCellValue("cell_fill_pattern_border_" + i); } saveWorkBook(wb); } public void saveWorkBook(Workbook wb) throws Exception { FileOutputStream fileOut = new FileOutputStream( "f:/saveFile/temp/sys_xlsx_" + System.currentTimeMillis() + ".xlsx"); wb.write(fileOut); fileOut.close(); } }
全文完。
相关推荐
本篇文章主要探讨如何利用POI在Excel单元格中添加超链接,并设置字体颜色。 首先,为了使用Apache POI库,你需要在Maven项目的pom.xml文件中引入以下依赖: ```xml <!-- 主要的POI库 --> <groupId>org.apache...
如果要将单元格格式设置为文本,可以创建一个文本样式,并将其应用到单元格上。 - **写入数据**:使用 `setCellValue()` 方法将数据写入单元格。 - **写入文件**:最后,使用 `write()` 方法将工作簿写入到指定的...
例如,创建一个文本样式并将其应用于单元格: ```java CellStyle textStyle = workbook.createCellStyle(); textStyle.setDataFormat(workbook.createDataFormat().getFormat("@")); cell.setCellStyle...
Apache POI提供了这样的功能,可以通过设置单元格样式来实现。具体步骤如下: 1. **创建单元格样式**:首先需要创建一个`CellStyle`对象,并设置`setWrapText(true)`属性,这样就可以启用单元格中的自动换行功能。 ...
本篇文章主要探讨如何使用Java来设置Excel单元格的样式,包括对齐方式、文本旋转、换行以及缩进。为了实现这些功能,我们可以借助第三方库Free Spire.XLS for Java。 首先,要使用Free Spire.XLS for Java库,你...
以下是一段示例代码,展示了如何在Excel单元格中设置货币格式: ```java HSSFWorkbook workbook = new HSSFWorkbook(); // 创建工作簿 HSSFSheet sheet = workbook.createSheet("Sheet1"); // 创建工作表 HSSFRow ...
Java Poi 导出excel(支持各种设置字体、颜色、垂直居中)
4. **数据格式(CellStyle)**:POI允许你设置单元格的样式,如字体、颜色、对齐方式、边框等,通过`CellStyle`对象实现。 5. **数据读写**:使用`BufferedReader`和`BufferedWriter`进行文件操作,`...
例如,可以设置单元格为粗体、斜体,改变字体大小和颜色,设置文本水平居中或垂直居下,甚至添加边框样式。 6. **开发包使用**: - `javaToExcelUtil`很可能包含了实现这些功能的Java类和方法。使用此类,开发者...
Apache POI还允许我们设置单元格的样式,如字体、颜色、对齐方式等,并能处理公式: ```java CellStyle style = workbook.createCellStyle(); style.setFillForegroundColor(IndexedColors.YELLOW.getIndex());...
POI库不仅支持基本的文本和数字操作,还支持更高级的功能,如公式计算、样式设置和图表创建。 2. **创建Excel图表** 要生成Excel图表,我们需要先创建一个`XSSFWorkbook`对象,这代表了整个Excel工作簿。接着,创建...
本篇将详细讲解如何使用POI操作Excel,特别是处理中文字符以及设置单元格样式。 首先,导入必要的POI库: ```java import java.util.ArrayList; import java.util.Iterator; import org.apache.poi.hssf.usermodel....
8. **样式与格式**:POI允许我们设置单元格的样式,如字体、颜色、对齐方式、边框等。这些样式是通过XSSFCellStyle对象进行管理的。 通过以上知识,我们可以利用Apache POI和SAX解析器实现对Excel 2007文件高效、...
`CellType.java`可能包含了枚举类型,用于表示Excel单元格的数据类型,如数值、字符串等,而`ExcelData.java`可能是用来封装数据的实体类,包含需要导出到Excel的数据。 通过这种方式,你可以根据需求灵活地创建带...
在这个“Excel2007Poi处理教程”中,我们将深入探讨如何利用Apache POI处理Excel 2007(XLSX)文件。Excel 2007引入了新的XML格式,使得文件结构更为复杂,但同时也提供了更多的功能和更高的数据存储容量。 首先,...
除了基本的读写操作外,POI还支持许多高级功能,比如处理不同类型的单元格数据、复杂的写入操作、设置单元格样式等。 **2.1 单元格各类型数据读取** 单元格可以存储多种类型的数据,包括文本、数字、日期等。在...
- **写入Excel数据**: POI也支持向Excel文件写入数据,创建新的工作簿、工作表,插入数据,设置单元格格式,添加图表等。 3. **Word解析** - **HWPF与XWPF**: HWPF是处理旧版Word文档(.doc)的API,而XWPF用于...
综上所述,Apache POI 3.10是Java开发人员处理Excel文档的强大工具,它允许你进行各种复杂的操作,从简单的数据读写到复杂的公式计算和样式设定,都可通过其丰富的API实现。如果你需要在Java应用中与Excel交互,...