/**
* 导出changeQuery结果
*/
public String resultExport(long taskId) {
//创建工作表和sheet
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet();
sheet.setDefaultColumnWidth(20);
//表头
XSSFRow headerRow = sheet.createRow(0);
List<Map<String, Object>> list = retrieveChangeQueryTaskResultAll(taskId);//获取查询的结果,按照自己的写
if (list.isEmpty()) {
return null;
}
//表头数据
Set<String> set = list.get(0).keySet();
int k = 0;
for (String s : set) {
headerRow.createCell(k++).setCellValue(s);
}
//填充数据
for (int i = 0; i < list.size(); i++) {
XSSFRow dataRow = sheet.createRow(sheet.getLastRowNum() + 1);//获取表格的最后一行
Map<String, Object> dataMap = list.get(i);//获取每一行的数据
k = 0;
for (String s : set) {
dataRow.createCell(k++).setCellValue(String.valueOf(dataMap.get(s)));
}
}
String fileName = "Change查询结果.xlsx";
ChangeQueryTask cqt = changeQueryTaskMapper.selectOne(Wrappers.<ChangeQueryTask>lambdaQuery().eq(ChangeQueryTask::getId, taskId));
if (cqt != null) {
fileName = cqt.getName() + ".xlsx";
}
try {
File file = new File(fileName);
FileOutputStream outputStream = new FileOutputStream(file);
workbook.write(outputStream);
workbook.close();
outputStream.close();
return "jj";//返回值自己决定
} catch (IOException | GalaxyFDSClientException | URISyntaxException e) {
e.printStackTrace();
}
return null;
}
@Test
public void ExcelServiceTest() {
//创建对象,获取一个表格
XSSFWorkbook wb=changeExport.dataExport(1);//调用自己的方法
//获取第1个sheet
XSSFSheet sheet = wb.getSheetAt(0);
XSSFRow r;
XSSFCell c;
//遍历工作表的每一行
for (int i = 0; i <=sheet.getLastRowNum(); i++) {
r=sheet.getRow(i);
int line=r.getPhysicalNumberOfCells();
//遍历工作表的每一列
for(int j=0;j<line;j++){
c= r.getCell(j);
System.out.println(i+"-"+j+"-"+c);
}
}
System.out.println("✌");
}