Simplen Excel export hinzugefügt

This commit is contained in:
Daniel Schick 2023-02-13 10:19:39 +01:00
parent 9f31b3cea4
commit ed1f11c936
7 changed files with 95 additions and 8 deletions

View File

@ -16,6 +16,7 @@ using System.Runtime.InteropServices;
using bsmd.database;
using ExcelDataReader;
using System.Collections.ObjectModel;
using ENI2.Excel;
namespace ENI2.Controls
{
@ -278,7 +279,25 @@ namespace ENI2.Controls
private void buttonExport_Click(object sender, RoutedEventArgs e)
{
// Export of the current collection
SaveFileDialog sfd = new SaveFileDialog()
{
Filter = "Excel Files|*.xls;*.xlsx"
};
if(sfd.ShowDialog() ?? false)
{
Util.UIHelper.SetBusyState();
ExcelManager em = new ExcelManager();
try
{
List<MaerskData> exportList = new List<MaerskData>(this.maerskDataList);
em.ExportMaersk(exportList, sfd.FileName);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Export failed", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
}
private async void buttonSave_Click(object sender, RoutedEventArgs e)

View File

@ -254,6 +254,7 @@
<Compile Include="Excel\ExcelComparer.cs" />
<Compile Include="Excel\ExcelManager.cs" />
<Compile Include="Excel\ExcelReader.cs" />
<Compile Include="Excel\ExcelSimpleWriter.cs" />
<Compile Include="Excel\ExcelUtil.cs" />
<Compile Include="Controls\MaerskListControl.xaml.cs">
<DependentUpon>MaerskListControl.xaml</DependentUpon>

View File

@ -80,11 +80,16 @@ namespace ENI2.Excel
resultMessage = "";
// Create ExcelWriter
using (ExcelWriter ew = new ExcelWriter(fileName, isRefSheet))
using (ExcelWriter ew = new ExcelWriter(isRefSheet))
{
ew.WriteData(messages, core, out resultMessage, isRefSheet);
ew.Save(fileName);
}
}
internal void ExportMaersk(List<MaerskData> exportList, string fileName)
{
ExcelSimpleWriter.WriteMaerskList(fileName, exportList);
}
}
}

View File

@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;
using bsmd.database;
namespace ENI2.Excel
{
static class ExcelSimpleWriter
{
public static void WriteMaerskList(string filename, List<MaerskData> data)
{
Application excelApp = new Application();
excelApp.DisplayAlerts = false;
excelApp.Visible = false;
Workbook wb = excelApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Worksheet ws = wb.Worksheets[1];
// ExcelWorkSheet.Cells[r, c] = "R" + r + "C" + c;
for (int i = 0; i < data.Count; i++)
{
MaerskData md = data[i];
ws.Cells[i + 1, 1] = md.ColA;
ws.Cells[i + 1, 2] = md.ColB;
ws.Cells[i + 1, 3] = md.ColC;
ws.Cells[i + 1, 4] = md.ColD;
ws.Cells[i + 1, 5] = md.ColE;
ws.Cells[i + 1, 6] = md.ColF;
ws.Cells[i + 1, 7] = md.ColG;
ws.Cells[i + 1, 8] = md.ColH;
ws.Cells[i + 1, 9] = md.ColI;
ws.Cells[i + 1, 10] = md.ColJ;
ws.Cells[i + 1, 11] = md.ColK;
ws.Cells[i + 1, 12] = md.ColL;
ws.Cells[i + 1, 13] = md.ColM ;
ws.Cells[i + 1, 14] = md.Remark;
}
wb.SaveAs(filename, XlFileFormat.xlOpenXMLWorkbook, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
wb.Saved = true;
wb.Close(0);
Marshal.ReleaseComObject(ws);
Marshal.ReleaseComObject(wb);
excelApp.Quit();
Marshal.ReleaseComObject(excelApp);
}
}
}

View File

@ -18,11 +18,9 @@ namespace ENI2.Excel
internal class ExcelWriter : ExcelBase
{
#region Construction
public ExcelWriter(string filePath, bool isRefSheet)
public ExcelWriter(bool isRefSheet)
{
string filename = @"Excel\EU-NoAD-Data-Collecting-Tool-5_0.xlsx";
if (isRefSheet) filename = @"Excel\Reference_Sheet_DE.xlsx";
@ -194,6 +192,11 @@ namespace ENI2.Excel
}
public void WriteMaerskList(List<MaerskData> maerskList)
{
}
#endregion
#region private excel field writing