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
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)); // 设置默认行高
|
|
}
|
|
}
|
|
}
|