`
53873039oycg
  • 浏览: 843730 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

[简单]poi 设置excel 2007单元格文本样式

    博客分类:
  • poi
 
阅读更多

       结果为:

     

 

 

     代码如下:

    

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();
	}
}

   全文完。

 

  • 大小: 56.5 KB
  • 大小: 93.5 KB
  • 大小: 64.8 KB
分享到:
评论

相关推荐

    java使用poi在excel单元格添加超链接,设置字体颜色(csdn)————程序.pdf

    本篇文章主要探讨如何利用POI在Excel单元格中添加超链接,并设置字体颜色。 首先,为了使用Apache POI库,你需要在Maven项目的pom.xml文件中引入以下依赖: ```xml &lt;!-- 主要的POI库 --&gt; &lt;groupId&gt;org.apache...

    POI设置EXCEL单元格格式为文本.pdf

    如果要将单元格格式设置为文本,可以创建一个文本样式,并将其应用到单元格上。 - **写入数据**:使用 `setCellValue()` 方法将数据写入单元格。 - **写入文件**:最后,使用 `write()` 方法将工作簿写入到指定的...

    POI设置EXCEL单元格格式为文本.docx

    例如,创建一个文本样式并将其应用于单元格: ```java CellStyle textStyle = workbook.createCellStyle(); textStyle.setDataFormat(workbook.createDataFormat().getFormat("@")); cell.setCellStyle...

    POI的EXCEL导出,自动换行

    Apache POI提供了这样的功能,可以通过设置单元格样式来实现。具体步骤如下: 1. **创建单元格样式**:首先需要创建一个`CellStyle`对象,并设置`setWrapText(true)`属性,这样就可以启用单元格中的自动换行功能。 ...

    Java 设置Excel单元格对齐方式、文本旋转、换行、缩进.pdf

    本篇文章主要探讨如何使用Java来设置Excel单元格的样式,包括对齐方式、文本旋转、换行以及缩进。为了实现这些功能,我们可以借助第三方库Free Spire.XLS for Java。 首先,要使用Free Spire.XLS for Java库,你...

    Java POI 生成Excel时显示货币格式

    以下是一段示例代码,展示了如何在Excel单元格中设置货币格式: ```java HSSFWorkbook workbook = new HSSFWorkbook(); // 创建工作簿 HSSFSheet sheet = workbook.createSheet("Sheet1"); // 创建工作表 HSSFRow ...

    Java Poi 导出excel(支持各种设置字体、颜色、垂直居中)

    Java Poi 导出excel(支持各种设置字体、颜色、垂直居中)

    java poi处理excel数据

    4. **数据格式(CellStyle)**:POI允许你设置单元格的样式,如字体、颜色、对齐方式、边框等,通过`CellStyle`对象实现。 5. **数据读写**:使用`BufferedReader`和`BufferedWriter`进行文件操作,`...

    Java对Excel数据导入导出工具类(含Exel单元格样式设置)

    例如,可以设置单元格为粗体、斜体,改变字体大小和颜色,设置文本水平居中或垂直居下,甚至添加边框样式。 6. **开发包使用**: - `javaToExcelUtil`很可能包含了实现这些功能的Java类和方法。使用此类,开发者...

    poi 实现Excel2007导入(详细代码)

    Apache POI还允许我们设置单元格的样式,如字体、颜色、对齐方式等,并能处理公式: ```java CellStyle style = workbook.createCellStyle(); style.setFillForegroundColor(IndexedColors.YELLOW.getIndex());...

    java的poi生成excel图表demo

    POI库不仅支持基本的文本和数字操作,还支持更高级的功能,如公式计算、样式设置和图表创建。 2. **创建Excel图表** 要生成Excel图表,我们需要先创建一个`XSSFWorkbook`对象,这代表了整个Excel工作簿。接着,创建...

    JAVA技巧:poi操作excel-中文与单元格样式的方法.docx

    本篇将详细讲解如何使用POI操作Excel,特别是处理中文字符以及设置单元格样式。 首先,导入必要的POI库: ```java import java.util.ArrayList; import java.util.Iterator; import org.apache.poi.hssf.usermodel....

    POI处理Excel文件.zip

    8. **样式与格式**:POI允许我们设置单元格的样式,如字体、颜色、对齐方式、边框等。这些样式是通过XSSFCellStyle对象进行管理的。 通过以上知识,我们可以利用Apache POI和SAX解析器实现对Excel 2007文件高效、...

    excel2007Poi处理教程

    在这个“Excel2007Poi处理教程”中,我们将深入探讨如何利用Apache POI处理Excel 2007(XLSX)文件。Excel 2007引入了新的XML格式,使得文件结构更为复杂,但同时也提供了更多的功能和更高的数据存储容量。 首先,...

    使用XSSFWorkbook自由合并单元格并设置单元格样式

    `CellType.java`可能包含了枚举类型,用于表示Excel单元格的数据类型,如数值、字符串等,而`ExcelData.java`可能是用来封装数据的实体类,包含需要导出到Excel的数据。 通过这种方式,你可以根据需求灵活地创建带...

    POI操作excel2003与2007

    除了基本的读写操作外,POI还支持许多高级功能,比如处理不同类型的单元格数据、复杂的写入操作、设置单元格样式等。 **2.1 单元格各类型数据读取** 单元格可以存储多种类型的数据,包括文本、数字、日期等。在...

    poi解析excel、word2007,2010等版本

    - **写入Excel数据**: POI也支持向Excel文件写入数据,创建新的工作簿、工作表,插入数据,设置单元格格式,添加图表等。 3. **Word解析** - **HWPF与XWPF**: HWPF是处理旧版Word文档(.doc)的API,而XWPF用于...

    poi 3.10 Excel导入导出工具包含文档

    综上所述,Apache POI 3.10是Java开发人员处理Excel文档的强大工具,它允许你进行各种复杂的操作,从简单的数据读写到复杂的公式计算和样式设定,都可通过其丰富的API实现。如果你需要在Java应用中与Excel交互,...

Global site tag (gtag.js) - Google Analytics