From 69308264836239635732fbe2c43122f546cb3c39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eugen=20H=C3=B6glinger?= Date: Wed, 26 Feb 2020 15:15:19 +0100 Subject: [PATCH] Projekt neu angelegt. --- .gitignore | 32 +++++++ Daten/Excel.zip | Bin 0 -> 52272 bytes Excel/Excel.csproj | 114 +++++++++++++++++++++++ Excel/Excel.sln | 25 +++++ Excel/Form1.Designer.cs | 92 ++++++++++++++++++ Excel/Form1.cs | 107 +++++++++++++++++++++ Excel/Form1.resx | 123 +++++++++++++++++++++++++ Excel/Program.cs | 29 ++++++ Excel/Properties/AssemblyInfo.cs | 36 ++++++++ Excel/Properties/Resources.Designer.cs | 63 +++++++++++++ Excel/Properties/Resources.resx | 117 +++++++++++++++++++++++ Excel/Properties/Settings.Designer.cs | 26 ++++++ Excel/Properties/Settings.settings | 7 ++ 13 files changed, 771 insertions(+) create mode 100644 .gitignore create mode 100644 Daten/Excel.zip create mode 100644 Excel/Excel.csproj create mode 100644 Excel/Excel.sln create mode 100644 Excel/Form1.Designer.cs create mode 100644 Excel/Form1.cs create mode 100644 Excel/Form1.resx create mode 100644 Excel/Program.cs create mode 100644 Excel/Properties/AssemblyInfo.cs create mode 100644 Excel/Properties/Resources.Designer.cs create mode 100644 Excel/Properties/Resources.resx create mode 100644 Excel/Properties/Settings.Designer.cs create mode 100644 Excel/Properties/Settings.settings diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5a5f80a --- /dev/null +++ b/.gitignore @@ -0,0 +1,32 @@ + +#Ignore thumbnails created by Windows +Thumbs.db +#Ignore files built by Visual Studio +*.obj +*.exe +*.pdb +*.user +*.aps +*.pch +*.vspscc +*_i.c +*_p.c +*.ncb +*.suo +*.tlb +*.tlh +*.bak +*.cache +*.ilk +*.log +[Bb]in +[Dd]ebug*/ +*.lib +*.sbr +obj/ +[Rr]elease*/ +_ReSharper*/ +[Tt]est[Rr]esult* +.vs/ +#Nuget packages folder +packages/ diff --git a/Daten/Excel.zip b/Daten/Excel.zip new file mode 100644 index 0000000000000000000000000000000000000000..7be32bab2109c1ed34a112e6211a58be618acc09 GIT binary patch literal 52272 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 literal 0 HcmV?d00001 diff --git a/Excel/Excel.csproj b/Excel/Excel.csproj new file mode 100644 index 0000000..39b4622 --- /dev/null +++ b/Excel/Excel.csproj @@ -0,0 +1,114 @@ + + + + + Debug + AnyCPU + {6CD3DB7C-2EEF-489D-AA5D-FF9E2382EF08} + WinExe + Properties + CSV20.Excel + Excel + v3.5 + 512 + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + {2DF8D04C-5BFA-101B-BDE5-00AA0044DE52} + 2 + 7 + 0 + primary + False + True + + + {00020813-0000-0000-C000-000000000046} + 1 + 8 + 0 + primary + False + True + + + {0002E157-0000-0000-C000-000000000046} + 5 + 3 + 0 + primary + False + True + + + + + \ No newline at end of file diff --git a/Excel/Excel.sln b/Excel/Excel.sln new file mode 100644 index 0000000..b291d03 --- /dev/null +++ b/Excel/Excel.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.572 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Excel", "Excel.csproj", "{6CD3DB7C-2EEF-489D-AA5D-FF9E2382EF08}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6CD3DB7C-2EEF-489D-AA5D-FF9E2382EF08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6CD3DB7C-2EEF-489D-AA5D-FF9E2382EF08}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6CD3DB7C-2EEF-489D-AA5D-FF9E2382EF08}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6CD3DB7C-2EEF-489D-AA5D-FF9E2382EF08}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {B75E968F-90F4-4B98-BAF1-B4CC7A40C2B5} + EndGlobalSection +EndGlobal diff --git a/Excel/Form1.Designer.cs b/Excel/Form1.Designer.cs new file mode 100644 index 0000000..36ac7ea --- /dev/null +++ b/Excel/Form1.Designer.cs @@ -0,0 +1,92 @@ +namespace CSV20.Excel +{ + partial class Form1 + { + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Windows Form-Designer generierter Code + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + this.buttonSpeichern = new System.Windows.Forms.Button(); + this.dataGridViewExcel = new System.Windows.Forms.DataGridView(); + this.openFileDialogExcel = new System.Windows.Forms.OpenFileDialog(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridViewExcel)).BeginInit(); + this.SuspendLayout(); + // + // buttonSpeichern + // + this.buttonSpeichern.Dock = System.Windows.Forms.DockStyle.Bottom; + this.buttonSpeichern.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.buttonSpeichern.Location = new System.Drawing.Point(0, 428); + this.buttonSpeichern.Name = "buttonSpeichern"; + this.buttonSpeichern.Size = new System.Drawing.Size(782, 25); + this.buttonSpeichern.TabIndex = 0; + this.buttonSpeichern.Text = "Änderungen speichern"; + this.buttonSpeichern.UseVisualStyleBackColor = true; + this.buttonSpeichern.Click += new System.EventHandler(this.buttonSpeichern_Click); + // + // dataGridViewExcel + // + this.dataGridViewExcel.AllowUserToAddRows = false; + this.dataGridViewExcel.AllowUserToDeleteRows = false; + this.dataGridViewExcel.AllowUserToResizeRows = false; + this.dataGridViewExcel.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridViewExcel.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridViewExcel.Location = new System.Drawing.Point(0, 0); + this.dataGridViewExcel.Name = "dataGridViewExcel"; + this.dataGridViewExcel.RowTemplate.Height = 24; + this.dataGridViewExcel.Size = new System.Drawing.Size(782, 428); + this.dataGridViewExcel.TabIndex = 1; + // + // openFileDialogExcel + // + this.openFileDialogExcel.DefaultExt = "xlsx"; + this.openFileDialogExcel.Filter = "Excel 2003 (*.xls)|*.xls|Excel 2007 (*.xlsx)|*.xlsx"; + this.openFileDialogExcel.FilterIndex = 2; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(782, 453); + this.Controls.Add(this.dataGridViewExcel); + this.Controls.Add(this.buttonSpeichern); + this.Name = "Form1"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Excel Datenblatt"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing); + this.Load += new System.EventHandler(this.Form1_Load); + ((System.ComponentModel.ISupportInitialize)(this.dataGridViewExcel)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button buttonSpeichern; + private System.Windows.Forms.DataGridView dataGridViewExcel; + private System.Windows.Forms.OpenFileDialog openFileDialogExcel; + } +} + diff --git a/Excel/Form1.cs b/Excel/Form1.cs new file mode 100644 index 0000000..5775627 --- /dev/null +++ b/Excel/Form1.cs @@ -0,0 +1,107 @@ +/*************************************\ + * Excel-Dokumente lesen und * + * bearbeiten * + * * + * Kapitel: Erweiterte * + * Programmierthemen * + * Zuordnung: C#-Buch V2.0 14.2 * + * * + * Copyright 2015 by Benjamin Jung * +\*************************************/ +using System; +using System.Windows.Forms; +using Microsoft.Office.Interop.Excel; // zusätzlich ist der Projektverweis auf COM -> Microsoft Excel xx-Objectlibrary + +namespace CSV20.Excel +{ + public partial class Form1 : Form + { + // oExcelApp benötigt den kompletten Namensraum, da andernfalls der Compiler den Unterschied zwischen + // "Microsoft.Office.Interop.Excel.Application" und "System.Windows.Forms.Application" nicht erkennen kann + private Microsoft.Office.Interop.Excel.Application oExcelApp = new Microsoft.Office.Interop.Excel.Application(); + private Workbook oWorkbook = null; + private Worksheet oWorksheet = null; + + public Form1() + { + InitializeComponent(); + } + + private void Form1_Load(object sender, EventArgs e) + { + Range oRange; + string sSpaltenName; + object oValue; + + if (openFileDialogExcel.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + // Datei öffnen und aktives Blatt und benutzten Bereich auswählen + oWorkbook = oExcelApp.Workbooks.Open(openFileDialogExcel.FileName); + oWorksheet = (Worksheet)oWorkbook.ActiveSheet; + oRange = oWorksheet.UsedRange; + + // Zellen vom Dokument in die Ansicht laden + for (int i = 0; i < oRange.Columns.Count; i++) + { + if (i >= dataGridViewExcel.Columns.Count) + { + // bilden der Spalten-Namen: A, B, C, D, E, ..., A1, B1, C1, ..., A2, B2, ... + sSpaltenName = ((char)('A' + i % 26)).ToString(); + if (Math.Floor(i / 26.0) != 0) + sSpaltenName += Math.Floor(i / 26.0).ToString(); + dataGridViewExcel.Columns.Add(sSpaltenName, sSpaltenName); + } + + for (int j = 0; j < oRange.Rows.Count; j++) + { + // Zeilen werden nur beim 1. Durchlauf hinzugefügt + if (i == 0) + { + dataGridViewExcel.Rows.Add(); + } + oValue = (oRange.Cells[j + 1, i + 1] as Range).Value; + // muss unbedingt abgefangen werden + if (oValue != null) + { + dataGridViewExcel.Rows[j].Cells[i].Value = oValue.ToString(); + } + } + } + + // Fenster minimieren und danach wieder in normale Fenstergröße zurückkehren, + // dies ist ein Trick, sodass wir die Anwendung wieder in den Vordergrund bekommen, + // da Excel unsichtbar geöffnet wird + this.WindowState = FormWindowState.Minimized; + this.WindowState = FormWindowState.Normal; + } + else // Bei Abbruch, Fenster schließen + { + Close(); + } + } + + private void Form1_FormClosing(object sender, FormClosingEventArgs e) + { + // Beim Schließen des Fensters, Dokument schließen + if (oWorkbook != null) + oWorkbook.Close(); + } + + private void buttonSpeichern_Click(object sender, EventArgs e) + { + if (MessageBox.Show("Sind Sie sicher dass Sie die Änderungen übernehmen möchten?\nDie Quelldatei wird überschrieben!", "Speichern?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) + { + // Daten von der Ansicht in das Dokument schreiben + for (int i = 0; i < dataGridViewExcel.Rows.Count - 1; i++) + for (int j = 0; j < dataGridViewExcel.Columns.Count; j++) + if (dataGridViewExcel.Rows[i].Cells[j].Value != null) + (oWorksheet.Cells[i + 1, j + 1] as Range).Value = dataGridViewExcel.Rows[i].Cells[j].Value.ToString(); + else + (oWorksheet.Cells[i + 1, j + 1] as Range).Value = ""; + + // Speichervorgang auslösen + oWorkbook.Save(); + } + } + } +} \ No newline at end of file diff --git a/Excel/Form1.resx b/Excel/Form1.resx new file mode 100644 index 0000000..29d0f4a --- /dev/null +++ b/Excel/Form1.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Excel/Program.cs b/Excel/Program.cs new file mode 100644 index 0000000..9faaceb --- /dev/null +++ b/Excel/Program.cs @@ -0,0 +1,29 @@ +/*************************************\ + * Excel-Dokumente lesen und * + * bearbeiten * + * * + * Kapitel: Erweiterte * + * Programmierthemen * + * Zuordnung: C#-Buch V2.0 14.2 * + * * + * Copyright 2015 by Benjamin Jung * +\*************************************/ +using System; +using System.Windows.Forms; + +namespace CSV20.Excel +{ + static class Program + { + /// + /// Der Haupteinstiegspunkt für die Anwendung. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Excel/Properties/AssemblyInfo.cs b/Excel/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..b304415 --- /dev/null +++ b/Excel/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 mit einer Assembly verknüpft sind. +[assembly: AssemblyTitle("Excel")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Excel")] +[assembly: AssemblyCopyright("Copyright © 2015")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar +// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von +// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest. +[assembly: ComVisible(false)] + +// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird +[assembly: Guid("5e6b7c01-e7a8-4cf7-b36f-ff6a23ec141e")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern +// übernehmen, indem Sie "*" eingeben: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Excel/Properties/Resources.Designer.cs b/Excel/Properties/Resources.Designer.cs new file mode 100644 index 0000000..7bd6840 --- /dev/null +++ b/Excel/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.34209 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// +//------------------------------------------------------------------------------ + +namespace CSV20.Excel.Properties { + using System; + + + /// + /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + /// + // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CSV20.Excel.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Excel/Properties/Resources.resx b/Excel/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Excel/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Excel/Properties/Settings.Designer.cs b/Excel/Properties/Settings.Designer.cs new file mode 100644 index 0000000..231d67c --- /dev/null +++ b/Excel/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.34209 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// +//------------------------------------------------------------------------------ + +namespace CSV20.Excel.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Excel/Properties/Settings.settings b/Excel/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Excel/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + +