使用POI 3.1.7 在Word中动态生成表格并设置列宽
使用POI 3.1.7来动态生成一个表格并设置列宽的代码如下:
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import java.io.FileOutputStream;
import java.io.IOException;
public class GenerateTable {
public static void main(String[] args) {
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet('Table');
// 设置列宽
sheet.setColumnWidth(0, 4000);
sheet.setColumnWidth(1, 6000);
sheet.setColumnWidth(2, 3000);
// 创建表头行
Row headerRow = sheet.createRow(0);
// 设置表头样式
HSSFCellStyle headerCellStyle = workbook.createCellStyle();
headerCellStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);
headerCellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
headerCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
headerCellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
headerCellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
headerCellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
headerCellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
// 创建表头单元格
Cell headerCell1 = headerRow.createCell(0);
headerCell1.setCellValue('列1');
headerCell1.setCellStyle(headerCellStyle);
Cell headerCell2 = headerRow.createCell(1);
headerCell2.setCellValue('列2');
headerCell2.setCellStyle(headerCellStyle);
Cell headerCell3 = headerRow.createCell(2);
headerCell3.setCellValue('列3');
headerCell3.setCellStyle(headerCellStyle);
// 创建数据行并填充数据
for (int i = 1; i <= 10; i++) {
Row dataRow = sheet.createRow(i);
Cell dataCell1 = dataRow.createCell(0);
dataCell1.setCellValue('数据' + i);
Cell dataCell2 = dataRow.createCell(1);
dataCell2.setCellValue('数据' + i);
Cell dataCell3 = dataRow.createCell(2);
dataCell3.setCellValue('数据' + i);
}
// 将表格写入文件
try {
FileOutputStream fileOutputStream = new FileOutputStream('Table.xls');
workbook.write(fileOutputStream);
fileOutputStream.close();
System.out.println('表格生成成功!');
} catch (IOException e) {
e.printStackTrace();
}
}
}
这段代码会在当前目录下生成一个名为Table.xls的Excel文件,包含一个名为Table的工作表。工作表中有一个表头行和10行数据。表头行和数据行都有3列,每列的宽度分别为4000、6000和3000。表头的背景色为灰色,单元格的边框为实线。你可以根据需要修改列宽、表头内容和数据内容。
原文地址: https://www.cveoy.top/t/topic/pcTm 著作权归作者所有。请勿转载和采集!