forked from github/dataease
fix: 识别excel类型
This commit is contained in:
parent
436fc108a0
commit
1046e09c98
@ -1,78 +0,0 @@
|
||||
package io.dataease.commons.utils;
|
||||
import com.google.gson.Gson;
|
||||
import io.dataease.datasource.dto.TableFiled;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.io.InputStream;
|
||||
import java.util.List;
|
||||
|
||||
public class ExcelReaderUtil {
|
||||
//excel2003扩展名
|
||||
public static final String EXCEL03_EXTENSION = ".xls";
|
||||
//excel2007扩展名
|
||||
public static final String EXCEL07_EXTENSION = ".xlsx";
|
||||
|
||||
public static void sendRows(String filePath, String sheetName, int sheetIndex, int curRow, List<String> cellList) {
|
||||
StringBuffer oneLineSb = new StringBuffer();
|
||||
oneLineSb.append(filePath);
|
||||
oneLineSb.append("--");
|
||||
oneLineSb.append("sheet" + sheetIndex);
|
||||
oneLineSb.append("::" + sheetName);//加上sheet名
|
||||
oneLineSb.append("--");
|
||||
oneLineSb.append("row" + curRow);
|
||||
oneLineSb.append("::");
|
||||
|
||||
// map.put(cellList.get(9),cellList.get(0)) ;
|
||||
|
||||
for (String cell : cellList) {
|
||||
oneLineSb.append(cell.trim());
|
||||
oneLineSb.append("|");
|
||||
}
|
||||
String oneLine = oneLineSb.toString();
|
||||
if (oneLine.endsWith("|")) {
|
||||
oneLine = oneLine.substring(0, oneLine.lastIndexOf("|"));
|
||||
}// 去除最后一个分隔符
|
||||
|
||||
System.out.println(oneLine);
|
||||
}
|
||||
|
||||
/**
|
||||
* 读取excel文件路径
|
||||
* @param fileName 文件路径
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void readExcel(String fileName, InputStream inputStream) throws Exception {
|
||||
if (fileName.endsWith(EXCEL03_EXTENSION)) { //处理excel2003文件
|
||||
ExcelXlsReader excelXls=new ExcelXlsReader();
|
||||
excelXls.process(inputStream);
|
||||
System.out.println(excelXls.totalSheets.size());
|
||||
System.out.println(excelXls.totalSheets.get(0).getExcelLable());
|
||||
for (TableFiled field : excelXls.totalSheets.get(0).getFields()) {
|
||||
System.out.println(new Gson().toJson(field));
|
||||
}
|
||||
System.out.println(excelXls.totalSheets.get(0).getData().get(0));
|
||||
System.out.println(excelXls.totalSheets.get(0).getData().get(1));
|
||||
System.out.println(excelXls.totalSheets.get(0).getData().get(2));
|
||||
} else if (fileName.endsWith(EXCEL07_EXTENSION)) {//处理excel2007文件
|
||||
ExcelXlsxReader excelXlsxReader = new ExcelXlsxReader();
|
||||
excelXlsxReader.process(inputStream);
|
||||
|
||||
System.out.println(excelXlsxReader.totalSheets.get(0).getFields().size());
|
||||
|
||||
for (TableFiled field : excelXlsxReader.totalSheets.get(0).getFields()) {
|
||||
System.out.println(new Gson().toJson(field));
|
||||
}
|
||||
System.out.println(excelXlsxReader.totalSheets.get(0).getData().get(0));
|
||||
|
||||
} else {
|
||||
throw new Exception("文件格式错误,fileName的扩展名只能是xls或xlsx。");
|
||||
}
|
||||
}
|
||||
|
||||
/* public static void main(String[] args) throws Exception {
|
||||
|
||||
|
||||
String file ="修改日期为mm-dd-yyyy.xlsx";
|
||||
ExcelReaderUtil.readExcel(file, new FileInputStream("/Users/taojinlong/Desktop/" + file));
|
||||
} */
|
||||
}
|
@ -23,8 +23,6 @@ import java.util.stream.Collectors;
|
||||
**/
|
||||
public class ExcelXlsReader implements HSSFListener {
|
||||
|
||||
public ExcelReaderUtil excelReaderUtil = new ExcelReaderUtil();
|
||||
|
||||
private int minColums = -1;
|
||||
|
||||
private POIFSFileSystem fs;
|
||||
|
@ -345,6 +345,7 @@ public class ExcelXlsxReader extends DefaultHandler {
|
||||
{ // 日期
|
||||
isDateFormat = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -398,8 +399,12 @@ public class ExcelXlsxReader extends DefaultHandler {
|
||||
thisStr = value;
|
||||
}
|
||||
thisStr = thisStr.replace("_", "").trim();
|
||||
|
||||
if(isDateFormat ){
|
||||
type = "DATETIME";isDateFormat = false;
|
||||
if(formatString != null && formatString.contains("%")){
|
||||
type = getType(thisStr);
|
||||
}
|
||||
}else {
|
||||
type = getType(thisStr);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user