package test;
import com.alibaba.fastjson.JSON;
import com.wbi.util.Util;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import weaver.formmode.excel.POIUtil;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ReadAndWriteExcle {
public static void main(String[] args) throws IOException {
String readFilePath = "/Users/XXX/Downloads/0111/readFile.xlsx";
int readtSheetAt = 0;
int readStartRowNo = 0;
List<Map<Integer, String>> readDataList = readWorkbook(readFilePath, readtSheetAt, readStartRowNo);
List<Map<Integer, String>> readDatafilterateList = readDatafilterate(readDataList);
String writeInFilePath = "/Users/XXX/Downloads/0111/writeInFile.xlsx";
List<String> writeInSheetTitleList = new ArrayList<String>();
writeInSheetTitleList.add("流程ID");
writeInSheetTitleList.add("凭证号");
writeInSheetTitleList.add("流程标题");
writeInSheetTitleList.add("申请日期");
writeInSheetTitleList.add("公司代码");
writeInSheetTitleList.add("凭证日期");
writeInSheetTitleList.add("过账日期");
writeInWorkbook(writeInFilePath, writeInSheetTitleList, readDatafilterateList);
}
public static List<Map<Integer, String>> readDatafilterate(List<Map<Integer, String>> readDataList) {
List<Map<Integer, String>> readDatafilterate = new ArrayList<Map<Integer, String>>();
readDatafilterate = readDataList;
return readDatafilterate;
}
public static List<Map<Integer, String>> readWorkbook(String readFilePath, int readtSheetAt, int readStartRowNo) {
File excelFile = new File(readFilePath);
List<Map<Integer, String>> list = new ArrayList<Map<Integer, String>>();
try {
Workbook workbook = WorkbookFactory.create(excelFile);
Sheet sheet = workbook.getSheetAt(readtSheetAt);
int lastRowNo = sheet.getLastRowNum();
for (int i = readStartRowNo; i < lastRowNo; i++) {
Map<Integer, String> map = new HashMap<>();
short lastCellNum = sheet.getRow(i).getLastCellNum();
for (int j = 0; j < lastCellNum; j++) {
String itemsVal = POIUtil.getValue(sheet, i, j);
map.put(j, itemsVal);
}
list.add(map);
}
} catch (IOException e) {
throw new RuntimeException(e);
}
System.out.println("readWorkbook >>> list >>>" + JSON.toJSONString(list));
return list;
}
public static void writeInWorkbook(String writeInFilePath, List<String> writeInSheetTitleList, List<Map<Integer, String>> readDataList) {
Workbook workbook1 = new XSSFWorkbook();
Sheet sheet1 = workbook1.createSheet("Sheet1");
Row title = sheet1.createRow(0);
for (int i = 0; i < writeInSheetTitleList.size(); i++) {
Cell cell1 = title.createCell(i);
cell1.setCellValue(Util.null2String(writeInSheetTitleList.get(i)));
}
for (int i = 0; i < readDataList.size(); i++) {
Map<Integer, String> map = readDataList.get(i);
Row items = sheet1.createRow(i + 1);
for (int ii = 0; ii < writeInSheetTitleList.size(); ii++) {
Cell cell1 = items.createCell(ii);
String val = map.get(Util.getIntValue(ii));
cell1.setCellValue(val);
}
}
try (FileOutputStream outputStream = new FileOutputStream(writeInFilePath)) {
workbook1.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
workbook1.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}