Skip to content

Commit

Permalink
refine
Browse files Browse the repository at this point in the history
  • Loading branch information
曾文超 Reid Zeng committed Dec 14, 2023
1 parent 531027a commit 7869bcc
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions src/main/java/com/zwc/sqldataprocessor/ExportExecutor.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,32 @@
import com.zwc.sqldataprocessor.exporter.XlsxExporter;

public class ExportExecutor {
static XlsxExporter xlsxExporter = new XlsxExporter();
static CsvExporter csvExporter = new CsvExporter();

public static String export(String resultName, DataList table, ExportStatement statement) {

// 自动根据文件名称推断导出格式
String path = statement.filePath;
if (path != null && path.toLowerCase().endsWith(xlsxExporter.getExtension())) {
statement.exportXlsx = true;
} else if (path != null && path.toLowerCase().endsWith(csvExporter.getExtension())) {
statement.exportXlsx = false;
}

// 执行导出
Exporter exporter = statement.exportXlsx ? new XlsxExporter() : new CsvExporter();
byte[] bytes = exporter.export(table, statement.exportNulls);

// 写入导出文件
String path = statement.filePath;
if (path == null) { // 默认文件名为数据集的名称
path = String.format("./%s.%s", resultName, exporter.getExtension());
path = FileHelper.writeOutputFile(path, bytes);
return path;
} else if (!path.contains("/") && !path.contains("\\")) { // 指定一个文件名称
path = String.format("./%s.%s", path, exporter.getExtension());
if (!path.endsWith(exporter.getExtension())) { // 尝试自动添加文件后缀
path = String.format("./%s.%s", path, exporter.getExtension());
}
path = FileHelper.writeOutputFile(path, bytes);
return path;
}
Expand Down

0 comments on commit 7869bcc

Please sign in to comment.