commit 50a8e56720dd64d989a6f05043dc06318d56cf9e Author: Eugen Höglinger Date: Thu Feb 29 15:18:08 2024 +0100 Initialize Liest aus einer Excel Datei eine Spalte aus diff --git a/.vs/Test_ExcelReadOneColumn.git/FileContentIndex/38514005-f0c4-4387-9f46-d69b407fe68e.vsidx b/.vs/Test_ExcelReadOneColumn.git/FileContentIndex/38514005-f0c4-4387-9f46-d69b407fe68e.vsidx new file mode 100644 index 0000000..9c4947f Binary files /dev/null and b/.vs/Test_ExcelReadOneColumn.git/FileContentIndex/38514005-f0c4-4387-9f46-d69b407fe68e.vsidx differ diff --git a/.vs/Test_ExcelReadOneColumn.git/v17/.suo b/.vs/Test_ExcelReadOneColumn.git/v17/.suo new file mode 100644 index 0000000..dc9a212 Binary files /dev/null and b/.vs/Test_ExcelReadOneColumn.git/v17/.suo differ diff --git a/Daten/Test.xlsx b/Daten/Test.xlsx new file mode 100644 index 0000000..2d709b3 Binary files /dev/null and b/Daten/Test.xlsx differ diff --git a/Test_ExcelReadOneColumn.git.sln b/Test_ExcelReadOneColumn.git.sln new file mode 100644 index 0000000..76aec5f --- /dev/null +++ b/Test_ExcelReadOneColumn.git.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34511.84 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_ExcelReadOneColumn", "Test_ExcelReadOneColumn\Test_ExcelReadOneColumn.csproj", "{A533264B-2481-4085-8A30-327A3D33A778}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A533264B-2481-4085-8A30-327A3D33A778}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A533264B-2481-4085-8A30-327A3D33A778}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A533264B-2481-4085-8A30-327A3D33A778}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A533264B-2481-4085-8A30-327A3D33A778}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {F32C184E-C7E0-4ABE-A8A5-D8CA1A41B8AD} + EndGlobalSection +EndGlobal diff --git a/Test_ExcelReadOneColumn/App.config b/Test_ExcelReadOneColumn/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/Test_ExcelReadOneColumn/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Test_ExcelReadOneColumn/Program.cs b/Test_ExcelReadOneColumn/Program.cs new file mode 100644 index 0000000..58bf643 --- /dev/null +++ b/Test_ExcelReadOneColumn/Program.cs @@ -0,0 +1,224 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using Microsoft.Office.Interop.Excel; // zusätzlich ist der Projektverweis auf COM -> Microsoft Excel xx-Objectlibrary +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace Test_ExcelReadOneColumn +{ + internal class Program + { + #region Version und Copyright + // Version und Copyright + static string programName = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); //Den Programmnamen auslesen + static string programVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); + static object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); + static string copyright = GenerateCopyright(); + + //Assembly Datum und Zeit + static DateTime value = AssemblyDateTime(); + string date = value.ToShortDateString(); + string time = value.ToLongTimeString(); + + private static DateTime AssemblyDateTime() + { + var version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; + var buildDateTime = new DateTime(2000, 1, 1).Add(new TimeSpan(TimeSpan.TicksPerDay * version.Build + TimeSpan.TicksPerSecond * 2 * version.Revision)); + //Tage seit dem 1. Januar 2000 und Sekunden seit Mitternacht, (multiplizier mit 2 ergibt das Original) + return buildDateTime; + } + + private static string CurrentYear() + { + DateTime dtn = DateTime.Now; + return dtn.Year.ToString(); + } + + private static string StartYear() + { + string startYear = ""; + if (((AssemblyCopyrightAttribute)attributes[0]).Copyright.Contains("Copyright © ")) + { + startYear = ((AssemblyCopyrightAttribute)attributes[0]).Copyright.Replace("Copyright © ", ""); + while (startYear.StartsWith(" ")) + { + startYear = startYear.Remove(0, 1); + } + + if (startYear.Contains("-")) + { + startYear = startYear.Remove(startYear.IndexOf("-")); + } + else + { + startYear = startYear.Remove(startYear.IndexOf(" ")); + } + return startYear; + } + else + { + DateTime dtn = DateTime.Now; + return dtn.Year.ToString(); + } + } + + private static string GenerateCopyright() + { + string startYear = StartYear(); + string currentYear = CurrentYear(); + + if (startYear == currentYear) + { + return ((AssemblyCopyrightAttribute)attributes[0]).Copyright; + } + else + { + string temp = ((AssemblyCopyrightAttribute)attributes[0]).Copyright; + string start = temp.Remove(temp.IndexOf(startYear) - 1); + string end = (temp.Remove(0, temp.IndexOf(" by"))); + + return String.Concat(start, " ", startYear, "-", currentYear, end); + } + } + #endregion + + #region Programm-Info + /// + /// Contains the name of the program file + /// + public static string ProgramName { set; get; } + + /// + /// Contains the version of the program file + /// + public static string ProgramVersion { set; get; } + + /// + /// Contains the copyright notice + /// + public static string Copyright { set; get; } + + private static void SetProgramInfo() + { + //Name, Version und Copyright setzen + ProgramName = programName; + ProgramVersion = programVersion; + Copyright = copyright; + } + #endregion + + static void Main(string[] args) + { + // Programminformationen setzen + SetProgramInfo(); + + //////////////////////////////////////////////////////////////// + // + // TODO: Hier Programmcode einfügen + string fileName = @"C:\CAD\Git-WorkRepository\VisualStudio\_TEST\Test_ExcelReadOneColumn.git\Daten\Test.xlsx"; + List machines = new List(); + + var ld = new Program(); + machines = ld.LoadData(fileName); //Alle Maschinentypen suchen + machines = ld.EliminateDuplicates(machines); + machines = ld.SortData(machines); + + string output = ""; + foreach (var item in machines) + { + output += item + "\r\n"; + } + Console.WriteLine(output); + Console.ReadLine(); + //TODO: machines filtern + + // + //////////////////////////////////////////////////////////////// + } + + private List LoadData(string fileName) + { + List data = new List(); + + Microsoft.Office.Interop.Excel.Application ExcelApplication; + Microsoft.Office.Interop.Excel.Workbook ExcelWorkbook; + Microsoft.Office.Interop.Excel.Worksheet ExcelWorkSheet; + ExcelApplication = null; + + ExcelApplication = new Microsoft.Office.Interop.Excel.Application(); + ExcelWorkbook = ExcelApplication.Workbooks.Open(fileName); + ExcelWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ExcelWorkbook.ActiveSheet; + + int numberOfUsedRows = ExcelWorkSheet.UsedRange.Rows.Count; + + for (int i = 5; i < numberOfUsedRows + 1; i++) + { + if (ExcelWorkSheet.Cells[i, "A"].Value2 != null) + { + data.Add(ExcelWorkSheet.Cells[i, "A"].Value2.ToString()); + } + } + + //Excel beenden + if (ExcelApplication != null) + { + ExcelApplication.Quit(); + } + + return data; + } + + private List EliminateDuplicates(List machines) + { + List data = new List(); + + for (int i = 0; i < machines.Count; i++) + { + if (data != null) + { + //Wenn es schon Daten gibt, dann vergleichen + bool exist = false; + + for (int j = 0; j < data.Count; j++) + { + if (machines[i] == data[j]) + { + exist = true; + } + } + + if (!exist) + { + data.Add(machines[i]); + } + else + { + exist = false; + } + } + else + { + data.Add(machines[i]); //Wenn es noch keine Daten gibt, dann aufnehmen + } + } + + return data; + } + + private List SortData(List machines) + { + List data = new List(); + + if (machines != null) + { + data = machines; + data.Sort(); + } + + return data; + } + } +} diff --git a/Test_ExcelReadOneColumn/Properties/AssemblyInfo.cs b/Test_ExcelReadOneColumn/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..278f44b --- /dev/null +++ b/Test_ExcelReadOneColumn/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Allgemeine Informationen über eine Assembly werden über die folgenden +// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die einer Assembly zugeordnet sind. +[assembly: AssemblyTitle("Test_ExcelReadOneColumn")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Test_ExcelReadOneColumn")] +[assembly: AssemblyCopyright("Copyright © 2022 by Eugen Höglinger")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly +// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von +// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen. +[assembly: ComVisible(false)] + +// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird +[assembly: Guid("a533264b-2481-4085-8a30-327a3d33a778")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, +// indem Sie "*" wie unten gezeigt eingeben: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Test_ExcelReadOneColumn/Test_ExcelReadOneColumn.csproj b/Test_ExcelReadOneColumn/Test_ExcelReadOneColumn.csproj new file mode 100644 index 0000000..643c6ac --- /dev/null +++ b/Test_ExcelReadOneColumn/Test_ExcelReadOneColumn.csproj @@ -0,0 +1,56 @@ + + + + + Debug + AnyCPU + {A533264B-2481-4085-8A30-327A3D33A778} + Exe + Test_ExcelReadOneColumn + Test_ExcelReadOneColumn + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + True + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Test_ExcelReadOneColumn/bin/Debug/Test_ExcelReadOneColumn.exe b/Test_ExcelReadOneColumn/bin/Debug/Test_ExcelReadOneColumn.exe new file mode 100644 index 0000000..59712c6 Binary files /dev/null and b/Test_ExcelReadOneColumn/bin/Debug/Test_ExcelReadOneColumn.exe differ diff --git a/Test_ExcelReadOneColumn/bin/Debug/Test_ExcelReadOneColumn.exe.config b/Test_ExcelReadOneColumn/bin/Debug/Test_ExcelReadOneColumn.exe.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/Test_ExcelReadOneColumn/bin/Debug/Test_ExcelReadOneColumn.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Test_ExcelReadOneColumn/bin/Debug/Test_ExcelReadOneColumn.pdb b/Test_ExcelReadOneColumn/bin/Debug/Test_ExcelReadOneColumn.pdb new file mode 100644 index 0000000..0fd26d2 Binary files /dev/null and b/Test_ExcelReadOneColumn/bin/Debug/Test_ExcelReadOneColumn.pdb differ diff --git a/Test_ExcelReadOneColumn/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs b/Test_ExcelReadOneColumn/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs new file mode 100644 index 0000000..3871b18 --- /dev/null +++ b/Test_ExcelReadOneColumn/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] diff --git a/Test_ExcelReadOneColumn/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/Test_ExcelReadOneColumn/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..02b531a Binary files /dev/null and b/Test_ExcelReadOneColumn/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/Test_ExcelReadOneColumn/obj/Debug/Test_ExcelReadOneColumn.csproj.AssemblyReference.cache b/Test_ExcelReadOneColumn/obj/Debug/Test_ExcelReadOneColumn.csproj.AssemblyReference.cache new file mode 100644 index 0000000..a7085d0 Binary files /dev/null and b/Test_ExcelReadOneColumn/obj/Debug/Test_ExcelReadOneColumn.csproj.AssemblyReference.cache differ diff --git a/Test_ExcelReadOneColumn/obj/Debug/Test_ExcelReadOneColumn.csproj.CoreCompileInputs.cache b/Test_ExcelReadOneColumn/obj/Debug/Test_ExcelReadOneColumn.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..b941426 --- /dev/null +++ b/Test_ExcelReadOneColumn/obj/Debug/Test_ExcelReadOneColumn.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +40a3bebb216fa6e1c34108a62e246a430f525cb0750367f8395e63f9efbc1e9b diff --git a/Test_ExcelReadOneColumn/obj/Debug/Test_ExcelReadOneColumn.csproj.FileListAbsolute.txt b/Test_ExcelReadOneColumn/obj/Debug/Test_ExcelReadOneColumn.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..474b453 --- /dev/null +++ b/Test_ExcelReadOneColumn/obj/Debug/Test_ExcelReadOneColumn.csproj.FileListAbsolute.txt @@ -0,0 +1,7 @@ +C:\CAD\Git-WorkRepository\VisualStudio\_TEST\Test_ExcelReadOneColumn.git\Test_ExcelReadOneColumn\bin\Debug\Test_ExcelReadOneColumn.exe.config +C:\CAD\Git-WorkRepository\VisualStudio\_TEST\Test_ExcelReadOneColumn.git\Test_ExcelReadOneColumn\bin\Debug\Test_ExcelReadOneColumn.exe +C:\CAD\Git-WorkRepository\VisualStudio\_TEST\Test_ExcelReadOneColumn.git\Test_ExcelReadOneColumn\bin\Debug\Test_ExcelReadOneColumn.pdb +C:\CAD\Git-WorkRepository\VisualStudio\_TEST\Test_ExcelReadOneColumn.git\Test_ExcelReadOneColumn\obj\Debug\Test_ExcelReadOneColumn.csproj.AssemblyReference.cache +C:\CAD\Git-WorkRepository\VisualStudio\_TEST\Test_ExcelReadOneColumn.git\Test_ExcelReadOneColumn\obj\Debug\Test_ExcelReadOneColumn.csproj.CoreCompileInputs.cache +C:\CAD\Git-WorkRepository\VisualStudio\_TEST\Test_ExcelReadOneColumn.git\Test_ExcelReadOneColumn\obj\Debug\Test_ExcelReadOneColumn.exe +C:\CAD\Git-WorkRepository\VisualStudio\_TEST\Test_ExcelReadOneColumn.git\Test_ExcelReadOneColumn\obj\Debug\Test_ExcelReadOneColumn.pdb diff --git a/Test_ExcelReadOneColumn/obj/Debug/Test_ExcelReadOneColumn.exe b/Test_ExcelReadOneColumn/obj/Debug/Test_ExcelReadOneColumn.exe new file mode 100644 index 0000000..59712c6 Binary files /dev/null and b/Test_ExcelReadOneColumn/obj/Debug/Test_ExcelReadOneColumn.exe differ diff --git a/Test_ExcelReadOneColumn/obj/Debug/Test_ExcelReadOneColumn.pdb b/Test_ExcelReadOneColumn/obj/Debug/Test_ExcelReadOneColumn.pdb new file mode 100644 index 0000000..0fd26d2 Binary files /dev/null and b/Test_ExcelReadOneColumn/obj/Debug/Test_ExcelReadOneColumn.pdb differ