easy excel 设置某一列的格式

easy excel 设置某一列的格式

  1. 由于easy excel注册处理cell的事件都是已单元格为最小维度进行处理,所以我们在设置某一整列的样式时,需要在sheet对象中设置样式;
关键api:org.apache.poi.ss.usermodel.Sheet#setDefaultColumnStyle

在easy excel中还是注册事件,通过WriteSheetHolder获取到我们的sheet当前对象,然后进行设置列的样式setDefaultColumnStyle(int column,CellStyle cellStyle)

使用 Alibaba Easy Excel 可以简单地设置 Excel 表格大小,下面是示例代码: ```java import com.alibaba.excel.EasyExcelFactory; import com.alibaba.excel.metadata.Sheet; import com.alibaba.excel.metadata.Table; import com.alibaba.excel.metadata.TableStyle; import com.alibaba.excel.write.ExcelBuilder; import com.alibaba.excel.write.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.WriteTable; import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class ExcelDemo { public static void main(String[] args) throws IOException { // 准备测试数据 List<List<Object>> data = new ArrayList<>(); for (int i = 0; i < 5; i++) { List<Object> rowData = new ArrayList<>(); for (int j = 0; j < 10; j++) { rowData.add("Data " + i + "-" + j); } data.add(rowData); } // 创建一个新的工作簿 ExcelWriter excelWriter = EasyExcelFactory.getWriter(new FileOutputStream("example.xlsx")); // 设置表格样式 TableStyle tableStyle = new TableStyle(); tableStyle.setTableContentBackGroundColor(IndexedColors.WHITE); tableStyle.setTableContentFont(FontData.createDefaultFont("宋体", 12)); tableStyle.setTableHeaderBackGroundColor(IndexedColors.GREY_25_PERCENT); tableStyle.setTableHeaderTextFont(FontData.createDefaultFont("宋体", 12, true)); // 创建一个新的工作表 WriteSheet writeSheet = EasyExcelFactory.writerSheet("Sheet1").build(); // 设置行高和宽 writeSheet.setColumnWidth(0, 20); // 第一列的宽度为20个字符宽度 writeSheet.setHead(createHead()); // 设置表头 writeSheet.setTableStyle(tableStyle); // 设置表格样式 // 设置数据 WriteTable writeTable = EasyExcelFactory.writerTable(0).build(); writeTable.setHead(createHead()); // 设置表头 writeTable.setTableStyle(tableStyle); // 设置表格样式 writeTable.setClazz(String.class); // 设置数据类型 excelWriter.write1(data, writeSheet, writeTable); // 关闭工作簿 excelWriter.finish(); } // 创建表头 private static List<List<String>> createHead() { List<List<String>> head = new ArrayList<>(); for (int i = 0; i < 10; i++) { List<String> header = new ArrayList<>(); header.add("Header " + i); head.add(header); } return head; } } ``` 在这个示例中,我们使用`writeSheet.setColumnWidth()`方法设置一列的宽度为20个字符宽度。你可以根据你的需求修改这个值。最后,使用`excelWriter.write1()`方法将数据写入工作簿中,然后关闭工作簿。 需要注意的是,Easy Excel 写入数据时会自动根据数据的长度调整宽,如果你想强制使用固定的宽,可以使用`LongestMatchColumnWidthStyleStrategy`类,如下所示: ```java // 设置固定的宽 HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy( new LongestMatchColumnWidthStyleStrategy(), new TableStyle(), new TableStyle() ); writeSheet.setHead(createHead()); // 设置表头 writeSheet.setTableStyle(tableStyle); // 设置表格样式 writeSheet.setHorizontalCellStyleStrategy(horizontalCellStyleStrategy); // 设置宽策略 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值