Open ZhangChengJi opened 11 months ago
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.builder.ExcelWriterBuilder;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.fill.FillConfig;
import com.alibaba.excel.write.metadata.fill.FillWrapper;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class TemplateDataFiller {
public static void main(String[] args) {
// 模板文件路径
String templateFileName = "template.xlsx";
// 新文件路径
String outputFileName = "output.xlsx";
// 读取模板文件中的数据
List<List<Object>> templateData = readTemplateData(templateFileName);
// 创建一个新的工作簿
ExcelWriterBuilder writerBuilder = EasyExcel.write(outputFileName);
ExcelWriter excelWriter = writerBuilder.build();
// 填充数据到新的工作簿中的Sheet
fillDataToSheet(templateData, excelWriter);
// 关闭ExcelWriter,保存文件
excelWriter.finish();
}
// 读取模板文件中的数据
private static List<List<Object>> readTemplateData(String templateFileName) {
// 这里可以根据需要使用EasyExcel读取模板文件的数据
// 返回一个List<List<Object>>,表示模板文件中的数据
// 这里简单地模拟一个模板数据
List<List<Object>> templateData = new ArrayList<>();
for (int i = 0; i < 10; i++) {
List<Object> rowData = new ArrayList<>();
rowData.add("Column1 data");
rowData.add("Column2 data");
// 其他列数据...
templateData.add(rowData);
}
return templateData;
}
// 填充数据到新的工作簿中的Sheet
private static void fillDataToSheet(List<List<Object>> templateData, ExcelWriter excelWriter) {
WriteSheet writeSheet = EasyExcel.writerSheet().build();
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
FillWrapper fillWrapper = FillWrapper.builder().collection(templateData).build();
excelWriter.fill(fillWrapper, fillConfig, writeSheet);
}
}
怎么实现一个模版,进行边复制模版边填充数据,最后汇总到一个sheet