PEPTool/AV-ToolV3/Export.cs
2025-10-08 10:11:18 +02:00

97 lines
3.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PEP_Tool
{
public static class Export
{/*System.Windows.Controls.DataGrid*/
public static void ExportCSV(System.Data.DataView list)
{
var l = list.ToTable();
string[] arr = new string[l.Rows.Count];
StringBuilder sb = new StringBuilder();
MainWindow.main.BarIsIndeterminate = false;
MainWindow.main.BarVisibility = System.Windows.Visibility.Visible;
MainWindow.main.BarMax = l.Rows.Count;
sb.AppendLine($"Name;Vorname;Datum;Kommen;Gehen;Schicht;Lizenzen;Abteilung;Zuweisung;Bemerkung;" + Environment.NewLine);
int count = 0;
foreach (System.Data.DataRow user in l.Rows)
{
string Schicht = "";
switch(user.ItemArray[8].ToString().Substring(0, 2))
{
case "MT":
Schicht = "Tagschicht";
break;
case "MF":
Schicht = "Frühschicht";
break;
case "MS":
Schicht = "Spätschicht";
break;
case "MN":
Schicht = "Nachtschicht";
break;
default:
Schicht = "Schicht nicht erkannt";
break;
}
count++;
sb.AppendLine($"{user.ItemArray[1]};{user.ItemArray[2]};{user.ItemArray[4].ToString().Split(' ')[0]};{user.ItemArray[5]};{user.ItemArray[6]};{Schicht};{user.ItemArray[12]} Lizenzen;{user.ItemArray[3]};{user.ItemArray[9]};{user.ItemArray[10].ToString().Replace('\n', ' ').Replace('\r', ' ')};");
MainWindow.main.BarValue = count;
}
//StringBuilder sb = new StringBuilder();
//IEnumerable<string> columnNames = l.Columns.Cast<System.Data.DataColumn>().
// Select(column => column.ColumnName);
//sb.AppendLine(string.Join(",", columnNames));
//foreach (System.Data.DataRow row in l.Rows)
//{
// IEnumerable<string> fields = row.ItemArray.Select(field => field.ToString());
// sb.AppendLine(string.Join(",", fields));
//}
//object[,] data = list.PrepareData();
//StringBuilder builder = new StringBuilder(Convert.ToString((char)65279));
//for (int k = 0; k < data.GetLength(0); k++)
//{
// List<string> tempList = new List<string>();
// for (int l = 0; l < data.GetLength(1); l++)
// tempList.Add(data[k, l].ToString());
// builder.Append(string.Join(",", tempList)).Append(Environment.NewLine);
//}
MainWindow.main.BarIsIndeterminate = true;
MainWindow.main.BarVisibility = System.Windows.Visibility.Collapsed;
Microsoft.Win32.SaveFileDialog dialog = new Microsoft.Win32.SaveFileDialog();
dialog.AddExtension = true;
dialog.DefaultExt = "csv";
dialog.Filter = "Excel Arbeitsblatt CSV|*.csv";
dialog.OverwritePrompt = true;
dialog.RestoreDirectory = true;
dialog.Title = "Liste exportieren";
dialog.ShowDialog();
if (dialog.FileName != "")
System.IO.File.WriteAllText(dialog.FileName, sb.ToString(), Encoding.UTF8);
}
}
}