
- 准备
- 工具类代码
工具类代码org.apache.poi poi4.0.1 org.apache.poi poi-ooxml4.0.1
public static boolean writeIntoExcelCell(String data, Integer sheetIndex,
Integer rowIndex, Integer cellIndex, String file) {
boolean flag = false;
// 获取Excel后缀名
String fileType = file.substring(file.lastIndexOf(".") + 1, file.length());
if (Arrays.asList(XLS, XLSX).contains(fileType) == false) {
log.warn("文件后缀名不正确");
return flag;
}
if (fileType.equals(XLS)) {
try {
// 创建Excel的工作书册 Workbook,对应到一个excel文档
HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(file));
HSSFSheet sheet = wb.getSheetAt(sheetIndex);
HSSFRow row = sheet.getRow( rowIndex);//行
HSSFCell cell = row.getCell(cellIndex);//获取指定列
// todo
cell.setCellValue(data);
FileOutputStream os;
os = new FileOutputStream(file);
wb.write(os);
os.close();
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
} else {
try {
XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(file));
XSSFSheet sheet = wb.getSheetAt(sheetIndex);
XSSFRow row1 = sheet.getRow(rowIndex);
Cell cell = row1.getCell(cellIndex);
cell.setCellValue(data);
FileOutputStream os;
os = new FileOutputStream(file);
wb.write(os);
os.close();
flag = true;
} catch (IOException e) {
e.printStackTrace();
}
}
return flag;
}
public static boolean writeIntoCell(String data, Integer getDataCellIndex, Integer sheetIndex, Integer rowIndex, Integer cellIndex, String file) {
boolean flag = false;
// 获取Excel后缀名
String fileType = file.substring(file.lastIndexOf(".") + 1, file.length());
if (Arrays.asList(XLS, XLSX).contains(fileType) == false) {
log.warn("文件后缀名不正确");
return flag;
}
if (fileType.equals(XLS)) {
try {
// 创建Excel的工作书册 Workbook,对应到一个excel文档
HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(file));
HSSFSheet sheet = wb.getSheetAt(sheetIndex);
int physicalNumberOfRows = sheet.getPhysicalNumberOfRows();//数据结束的行
HSSFRow row1 = sheet.getRow(sheet.getFirstRowNum());//表头行
int physicalNumberOfCells = row1.getPhysicalNumberOfCells();//数据结束列
//从第二行开始
for (int h = 1; h < physicalNumberOfRows; h++) {
HSSFRow row = sheet.getRow(h); //获取出每一行
HSSFCell cell = row.getCell(cellIndex);//获取指定列
if (cell == null) cell = row.createCell(cellIndex);
HSSFCell getDataCell = row.getCell(getDataCellIndex); //指定行列对应的单元格
String basiData = convertCellValueToString(getDataCell); //得到该单元格数据
// todo 用 basiData 查找百度坐标、
StringJoiner sj = new StringJoiner(",");
if(StringUtil.isNotEmpty(basiData)){
Map coordinate = EntCoordSyncJob.getCoordinate(basiData);
if(coordinate==null || coordinate.isEmpty()) continue;
BigDecimal lat = coordinate.get("lat");
BigDecimal lng = coordinate.get("lng");
sj.add(lat.toString());
sj.add(lng.toString());
}
String pos = sj.toString();
cell.setCellValue(pos);
FileOutputStream os;
os = new FileOutputStream(file);
wb.write(os);
os.close();
flag = true;
}
} catch (Exception e) {
e.printStackTrace();
}
} else {
try {
XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(file));
XSSFSheet sheet = wb.getSheetAt(sheetIndex);
int physicalNumberOfRows = sheet.getPhysicalNumberOfRows();//数据结束的行
XSSFRow row1 = sheet.getRow(sheet.getFirstRowNum());//表头行
int physicalNumberOfCells = row1.getPhysicalNumberOfCells();//数据结束列
//从第二行开始
for (int h = 1; h < physicalNumberOfRows; h++) {
XSSFRow row = sheet.getRow(h); //获取每一行
XSSFCell cell = row.getCell(cellIndex);//获取指定列
if (cell == null) cell = row.createCell(cellIndex);
XSSFCell getDataCell = row.getCell(getDataCellIndex);//指定行列对应的单元格
String basiData = convertCellValueToString(getDataCell);//得到该单元格数据
cell.setCellValue(pos);
FileOutputStream os;
os = new FileOutputStream(file);
wb.write(os);
os.close();
flag = true;
}
} catch (IOException e) {
e.printStackTrace();
}
}
return flag;
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)