Экспорт пакета в excel

This commit is contained in:
2023-12-07 00:09:10 +03:00
parent 9b46d395df
commit 540c041408
9 changed files with 182 additions and 9 deletions

14
.idea/workspace.xml generated
View File

@@ -7,9 +7,15 @@
</component>
<component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/artifacts/VisualSapfor_jar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/artifacts/VisualSapfor_jar.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ExportTasksPackageToExcel.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/icons/Excel.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Visual_DVM_2020.iml" beforeDir="false" afterPath="$PROJECT_DIR$/Visual_DVM_2020.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/kek.xls" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/UI/Menus_2023/MainMenuBar/MainMenuBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/UI/Menus_2023/MainMenuBar/MainMenuBar.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/UI/Menus_2023/TasksPackagesMenuBar/TasksPackagesMenuBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/UI/Menus_2023/TasksPackagesMenuBar/TasksPackagesMenuBar.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/Tasks/TestRunTasksDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/Tasks/TestRunTasksDBTable.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/TestPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/TestPass.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -87,7 +93,7 @@
<property name="UI_DESIGNER_EDITOR_MODE.UIDesignerToolWindowManager.SHOW" value="true" />
<property name="UI_DESIGNER_EDITOR_MODE.UIDesignerToolWindowManager.WIDTH" value="509" />
<property name="extract.method.default.visibility" value="public" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/libs/xmlbeans-2.6.0.jar" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/src/icons" />
<property name="project.structure.last.edited" value="Modules" />
<property name="project.structure.proportion" value="0.15" />
<property name="project.structure.side.proportion" value="0.2" />
@@ -100,8 +106,8 @@
<recent name="controls.Trees" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Users\misha\Documents\visual_sapfor_2023\libs" />
<recent name="C:\Users\misha\Documents\visual_sapfor_2023\src\icons" />
<recent name="C:\Users\misha\Documents\visual_sapfor_2023\libs" />
<recent name="C:\Users\misha\Documents\visual_sapfor_2023\src\icons\versions" />
<recent name="C:\Users\misha\Documents\visual_sapfor_2023\src\icons\Transformations" />
<recent name="C:\Users\misha\Documents\visual_dvm_2020\src\icons" />

BIN
kek.xls

Binary file not shown.

View File

@@ -52,7 +52,7 @@ public class MainMenuBar extends VisualiserMenuBar {
//-
setPreferredSize(new Dimension(0, 30));
//---
/*
add(new MenuBarButton() {
{
setIcon("/icons/Apply.png");
@@ -62,6 +62,7 @@ public class MainMenuBar extends VisualiserMenuBar {
});
}
});
*/
//---
ShowProject(false);
}

View File

@@ -3,6 +3,9 @@ import Common.UI.Menus_2023.DataMenuBar;
import Visual_DVM_2021.Passes.PassCode_2021;
public class TasksPackagesMenuBar extends DataMenuBar {
public TasksPackagesMenuBar() {
super("пакеты задач", PassCode_2021.AbortTaskPackage, PassCode_2021.DeleteTasksPackage);
super("пакеты задач",
PassCode_2021.ExportTasksPackageToExcel,
PassCode_2021.AbortTaskPackage,
PassCode_2021.DeleteTasksPackage);
}
}

View File

@@ -0,0 +1,150 @@
package Visual_DVM_2021.Passes.All;
import Common.Current;
import Common.Global;
import Common.Utils.Files.VDirectoryChooser;
import Common.Utils.Utils;
import TestingSystem.DVM.Tasks.TestRunTask;
import TestingSystem.DVM.TasksPackage.TasksPackage;
import TestingSystem.DVM.TasksPackage.TasksPackageState;
import Visual_DVM_2021.Passes.Pass_2021;
import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Vector;
public class ExportTasksPackageToExcel extends Pass_2021<TasksPackage> {
//https://tproger.ru/translations/how-to-read-write-excel-file-java-poi-example
File dir;
File res;
VDirectoryChooser directoryChooser = new VDirectoryChooser("Выбор папки для сохранения таблицы Excel");
//---
final int max_columns = 13;
CellStyle header_style;
CellStyle regular_style;
Workbook book = null;
Sheet sheet = null;
//---
@Override
public String getIconPath() {
return "/icons/Excel.png";
}
@Override
public String getButtonText() {
return "";
}
@Override
protected boolean canStart(Object... args) throws Exception {
book= null;
sheet = null;
header_style=null;
regular_style=null;
//--
if (Current.Check(Log, Current.TasksPackage)) {
target = Current.getTasksPackage();
if (!target.state.equals(TasksPackageState.Done)) {
Log.Writeln_("Можно получить таблицу только завершенного пакета.");
return false;
} else {
dir = directoryChooser.ShowDialog();
if (dir == null) {
Log.Writeln_("Папка не выбрана.");
return false;
}
res = new File(dir, Utils.getDateName("package_" + target.id) + ".xls");
return true;
}
}
return false;
}
protected Row addRow(int row_num, boolean isHeader, Object... values) {
Row row = sheet.createRow(row_num);
int i = 0;
for (Object value : values) {
Cell cell = row.createCell(i);
cell.setCellValue(value.toString());
cell.setCellStyle(isHeader? header_style:regular_style);
//--
++i;
}
return row;
}
@Override
protected void body() throws Exception {
File file = Utils.getTempFileName("table");
//--
book = new HSSFWorkbook();
sheet = book.createSheet("Результаты тестирования");
header_style = book.createCellStyle();
//---
Font font = book.createFont();//Create font
font.setBold(true);
header_style.setFont(font);
//--
header_style.setBorderBottom(CellStyle.BORDER_THICK);
header_style.setBorderLeft(CellStyle.BORDER_THICK);
header_style.setBorderRight(CellStyle.BORDER_THICK);
header_style.setBorderTop(CellStyle.BORDER_THICK);
//--
regular_style=book.createCellStyle();
regular_style.setBorderBottom(CellStyle.BORDER_THIN);
regular_style.setBorderLeft(CellStyle.BORDER_THIN);
regular_style.setBorderRight(CellStyle.BORDER_THIN);
regular_style.setBorderTop(CellStyle.BORDER_THIN);
//--
Row header = addRow(0, true,
"Группа",
"Тест",
"Язык",
"Флаги",
"Сборка",
"Запуск",
"Время компиляции (с)",
"Матрица",
"Окружение",
"usr.par",
"Время выполнения (с)",
"Чистое время (с)",
"Прогресс (%)");
//--
Vector<TestRunTask> tasks = new Vector<>();
for (TestRunTask task : Global.testingServer.account_db.testRunTasks.Data.values()) {
if ((task.taskspackage_id == target.id) && (task.isVisible()))
tasks.add(task);
}
//--
int i = 1;
for (TestRunTask task : tasks) {
Row row = addRow(i, false,
task.group_description,
task.test_description,
task.language.getDescription(),
task.flags,
task.compilation_state.getDescription(),
task.state.getDescription(),
task.compilation_time,
task.matrix,
task.environments,
task.usr_par,
task.Time,
task.CleanTime,
task.progress
);
++i;
}
//--
for (i = 0; i < max_columns; ++i)
sheet.autoSizeColumn(i);
// Записываем всё в файл
FileOutputStream stream = new FileOutputStream(file);
book.write(stream);
book.close();
stream.close();
///--
FileUtils.copyFile(file, res);
book = null;
stream = null;
file = null;
}
}

View File

@@ -1,5 +1,7 @@
package Visual_DVM_2021.Passes.All;
import Common.Utils.Utils;
import Visual_DVM_2021.Passes.Pass_2021;
import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
@@ -13,7 +15,7 @@ public class TestPass extends Pass_2021 {
}
@Override
protected void body() throws Exception {
File file = new File("kek.xls");
File file = Utils.getTempFileName("table");
//--
Workbook book = new HSSFWorkbook();
Sheet sheet = book.createSheet("Birthdays");
@@ -42,7 +44,15 @@ public class TestPass extends Pass_2021 {
sheet.autoSizeColumn(1);
// Записываем всё в файл
book.write(new FileOutputStream(file));
FileOutputStream stream = new FileOutputStream(file);
book.write(stream);
book.close();
stream.close();
///--
File res = new File("kek.xls");
FileUtils.copyFile(file, res);
book= null;
stream = null;
file = null;
}
}

View File

@@ -305,12 +305,15 @@ public enum PassCode_2021 {
CreateGroupFromFiles,
DeleteTasksPackage,
DeleteSubscriberWorkspace,
ExportTasksPackageToExcel,
//->
TestPass;
public String getDescription() {
switch (this) {
case Undefined:
return "?";
case ExportTasksPackageToExcel:
return "Экспорт пакета задач в Excel";
case DeleteSubscriberWorkspace:
return "Удалить рабочее пространство пользователя";
case DeleteTasksPackage:

BIN
src/icons/Excel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB