You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

59 lines
2.0 KiB

package com.gaotao.common.easyexcel;
import com.alibaba.excel.write.handler.AbstractRowWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
/**
* 项目管理事项导出列宽处理器
* 用于控制各列的宽度
*/
public class ProjectManagementItemsColumnWidthHandler extends AbstractRowWriteHandler {
@Override
public void afterRowDispose(WriteSheetHolder writeSheetHolder,
WriteTableHolder writeTableHolder,
Row row,
Integer relativeRowIndex,
Boolean isHead) {
Sheet sheet = writeSheetHolder.getSheet();
// 只在第一行设置列宽,避免重复设置
if (row.getRowNum() == 0) {
// 序号列 - 较窄
sheet.setColumnWidth(0, 6 * 256);
// 内容列 - 较宽
sheet.setColumnWidth(1, 30 * 256);
// 时间(天)列 - 较窄
sheet.setColumnWidth(2, 8 * 256);
// 计划完成日期列 - 中等
sheet.setColumnWidth(3, 12 * 256);
// 完成进度子列(10%-100%)- 很窄,用于显示颜色块
for (int i = 4; i <= 13; i++) {
sheet.setColumnWidth(i, 4 * 256);
}
// 完成进度%列 - 较窄
sheet.setColumnWidth(14, 10 * 256);
// 实际完成日期列 - 中等
sheet.setColumnWidth(15, 12 * 256);
// 负责人列 - 较窄
sheet.setColumnWidth(16, 8 * 256);
// 完成状况列 - 较窄
sheet.setColumnWidth(17, 10 * 256);
// 设置行高
sheet.setDefaultRowHeight((short) (20 * 20)); // 设置默认行高
}
}
}