C# Excel-Datei in der Konsole ausgeben mit C#

Captium

Cadet 4th Year
Registriert
Apr. 2017
Beiträge
81
Hallo,

ich bin ein blutiger Anfänger mit C#. So Sachen wie Datentypen, Schleifen, Arrays etc. kann ich, also nur die Basics.
Ich will jetzt eine Excel-Datei in eine .CSV umwandeln(hab ich schon geschafft) und dann mit C# dies dann beim ersten Schritt in der Konsole ausgeben. Ich hab zwar eine Ahnung wie ich das mache, also, auf die Datei mit C# zugreifen, sie lesen und dann ausgeben. Aber WIE ich das schlussendlich programmiere, hab ich keinen blassen Schimmer davon...
Gegoogelt hab ich natürlich auch schon aber nur vom Code verstehe ich das nicht.

Ich hoffe jemand kann mir helfen :)
Wichtig ist mir das ich das auch wirklich verstehe, also bitte nicht nur Code hinklatschen und sagen "So gehts" :/

Vielen dank schonmal!
 
Ich hab zwar eine Ahnung wie ich das mache, also, auf die Datei mit C# zugreifen, sie lesen und dann ausgeben. Aber WIE ich das schlussendlich programmiere, hab ich keinen blassen Schimmer davon...

Das musst du schon genauer erklären. Beide Sätze beschreiben das genau Gleiche, nur einmal kannst du es nach eigener Aussage, dann wieder nicht.
Bitte poste was du bis jetzt schon geschafft hast wenn du ja weißt wie man mit C# auf die Datei zugreift, etc. Also poste den C# Sourcecode den du schon geschrieben hast, und dann beschreibe mit welchem Teil du noch Probleme hast,
 
Hallo,
dein Stichtwort heißt "Office Interop".

Einfach danach Googlen. Da wirst du mit Erklärungen, Tutorials und Beispielen geradezu erschlagen.

greetz
hroessler
 
@HominiLupus Mit den Sätzen meine ich, ich weiß wie es gemacht werden sollte, aber über die Umsetzung habe ich keine Ahnung..Das ist ja das Problem, Code habe ich noch nicht.

@hroessler Mache ich sofort, danke.
 
Zuletzt bearbeitet:
Hast du schon jemals programmiert? In irgendeiner Programmiersprache?
Wenn nein, dann solltest du das erstmal lernen. Gibt genügend Bücher, Tutorials, etc. die einem dabei helfen.
 
dein Stichtwort heißt "Office Interop".

Naja, wenn er schon eine CSV Datei hat, dann bringt ihm das auch nicht viel.

Ich würd an der Stelle eher mal nach StreamReader und foreach googlen ;-)
 
Wie gesagt die C# Basics wie Datentypen, Schleifen, Arrays, Methoden kann ich...hab relativ neu angefangen zu lernen...
 
Naja, aber mit StreamReader, foreach und Console kommt du halt schon zum Ziel.

Du wolltest ja keinen fertigen Quellcode ;-)
 
Hast du schon jemals ein lauffähiges Programm geschrieben? Wenn nein, dann such dir ein passendes Tutorial und programmiere das nach.

Kommt halt so rüber wie:" ich weiß die basics vom schwimmen. arme und beine bewegen. aber im wasser war ich noch nie. kann mir wer sagen wie das geht?"

nicht böse gemeint ;) aber da musst du wohl selber durch. bei konkreten fragen können wir dir besser helfen.
 
Zuletzt bearbeitet:
@Drexel: Vorsicht mit dieser Aussage. Es ist nicht grundsätzlich erlaubt die Community Edition zu verweden. Es gibt da einen von Microsoft eng gesetzten Lizenzrahmen...

Grundsätzlich kostenlos und legal zu Verwenden ist nur die Express Edition.

greetz
hroessler
 
Einzelpersonen können die nach meinem Wissen uneingeschränkt verwenden. Wie auch immer, sobald eine Entwicklung kommerziell wird, sollte man eh schauen, das jedwede Software, die man nutzt korrekt lizensiert ist.
 
@hroessler

So eng sind die auch wieder nicht
Am 12. November 2014 erschien erstmals eine kostenlose Variante von Visual Studio 2013, die im Funktionsumfang der Professional Edition entspricht, und nach den Plänen von Microsoft die Express Editions ab Visual Studio 2015 ablösen soll. Sie heißt Community Edition und darf ebenso wie die Express Editions für kommerzielle Projekte verwendet werden, ist dabei aber beschränkt auf Unternehmen mit einem Jahresumsatz von maximal 1 Million US-Dollar und 5 Nutzer

Quwelle: https://de.m.wikipedia.org/wiki/Visual_Studio
 
Hier die Einschränkungen der VS2017 Community Edition

Ganz unten auf https://www.visualstudio.com/de/vs/community/
Einzelpersonen
Ein einzelner Entwickler kann mit Visual Studio Community eigene kostenlose oder kostenpflichtige Apps erstellen.

Organisationen
Eine unbegrenzte Anzahl Benutzer innerhalb einer Organisation kann Visual Studio Community für die folgenden Szenarien verwenden: in Schulungsumgebungen, für die akademische Forschung oder für die Beteiligung an Open Source-Projekten.
Alle anderen Verwendungsszenarien:
In nicht unternehmerisch tätigen Organisationen können bis zu fünf Benutzer Visual Studio Community verwenden. In Unternehmen (darunter verstehen wir Organisationen mit mehr als 250 PCs oder 1 Million USD Jahresumsatz) ist eine Verwendung jenseits der oben beschriebenen Szenarien zu Open Source, akademischer Forschung oder Schulungszwecken nicht erlaubt.
Hier die Kompletten Lizenz Bedingungen.
https://www.visualstudio.com/de/license-terms/mlt553321/
 
Ich kann die Basics, damit ist gemeint, ich hab das Spiel Pong selber programmiert, ein Haufen Ein- und Ausgabe Programme (Taschenrechner, etc.), Personalverwaltungssystem wo man in der Konsole die Daten von Mitarbeitern speichert und wieder auf Wunsch abrufen kann das mit Arrays, etwas mit Klassen wo Tiere von Tieren erben und viele winzige Programme.
Ich mache eine Ausbildung zum Fachinformatiker Anwendungsentwicklung und bin mit der Enterprise Version von VS bestens versorgt.

Hoffe das reicht mal als Info zu mir.

Was das Thema angeht, ich habe es soweit hinbekommen mit Streamreader etc. .Das Programm öffnet den Windows Explorer, man sucht sich eine CSV-Datei aus und die gibt er dann in einer Windows-Forms Anwendung genau wie in Excel aus. Eine Funktion womit man aus der Anwendung die Datei ändern kann baue ich noch dran. Das PROBLEM ist, ich verstehe die hälfte vom Code nicht, da ich die hälfte mir reinkopiert hab xD
In Google findet man natürlich viele Erklärungen aber in den sind dann auch andere Begriffe drin die ich nicht kenne usw.
Vielleicht kann es mit wer erklären für normal sterbliche.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace CSV_Editor
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent(); // Das braucht man um Button etc. nutzen zu können oder?
}

void Clear_all()
{
dataGridView1.Columns.Clear(); // Das löscht die Einträge in den Spalten right?
}

void ReadCSV(String file)
{
Clear_all();
String rowValue;
string[] cellValue;


if (System.IO.File.Exists(file)) // Diese Methode verstehe ich nur zu hälfte somit das ganze
//Programm nicht ganz. Was macht der hier genau schritt für Schritt
{
StreamReader streamReader = new StreamReader(file);
rowValue = streamReader.ReadLine();
cellValue = rowValue.Split(';');

for (int i = 0; i <= cellValue.Count() - 1; i++)
{
DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn();

column.Name = cellValue;
column.HeaderText = cellValue;
dataGridView1.Columns.Add(column);
}

while (streamReader.Peek() != -1)
{
rowValue = streamReader.ReadLine();
cellValue = rowValue.Split(';');
dataGridView1.Rows.Add(cellValue);
}

streamReader.Close();
}
}


private void btn_oeffnen_Click(object sender, EventArgs e)
{
openFileDialog1.ShowDialog(); // openFileDialog1 ist was???
ReadCSV(openFileDialog1.FileName);
}

private void Form1_Load(object sender, EventArgs e)
{
// In arbeit
}

private void bnt_speichern_Click(object sender, EventArgs e)
{
// In arbeit
}
}
}

Meine Fragen findet ihr im Code als Kommentar dargestellt.

Danke schon mal!

Mein nächster Schritt wäre die CSV-Datei in SQL "Auszugeben" mit C#, keine Ahnung wie das geht aber hat noch Zeit, daher jetzt unwichtig.
 
Zuletzt bearbeitet:
InitializeComponent initialisiert, wie der Name schon sagt die einzelnen Elemente auf deinem Formular - also die, die du auf der grafischen Oberfläche bereits hinzugefügt hast mit ID, Name, Position, Größe usw.

Hier ein simples Beispiel.

dataGridView1.Columns.Clear(); // Das löscht die Einträge in den Spalten right?
Korrekt.

System.IO.File.Exists(file) guckt, ob am Ort file eine Datei existiert und gibt dann entweder true oder false zurück.

Siehe hier.

Generell ist die MSDN ein guter Ort um so etwas selber herauszufinden.

openFileDialog1.ShowDialog(); // openFileDialog1 ist was???

Das wird ein OpenFileDialog sein, den du auf der Oberfläche hinzugefügt hast.
Der handelt die Dateiauswahl, die du ja scheinbar eingebaut hast.


Mein nächster Schritt wäre die CSV-Datei in SQL "Auszugeben" mit C#

Wie bitte was? Meinst du die Werte in eine Datenbank schreiben?
 
@Defender1st

Danke dir. Ja ich meine Werte in eine Datenbank schreiben.

--------------

Kann mit jemand die ganze ReadCSV Methode Schritt für Schritt erklären?

Danke.
 
Code:
void ReadCSV(String file) {
 Clear_all();
 String rowValue;
 string[] cellValue;


 if (System.IO.File.Exists(file)) // Diese Methode verstehe ich nur zu hälfte somit das ganze 
 //Programm nicht ganz. Was macht der hier genau schritt für Schritt
 {
  StreamReader streamReader = new StreamReader(file);
  rowValue = streamReader.ReadLine(); //Liest die erste Zeile der Datei in eine Variable
  cellValue = rowValue.Split(';'); // Splittet die Zeile anhand des Trennzeichens ";", Ergebnis in Liste.

  for (int i = 0; i <= cellValue.Count() - 1; i++) { //Diese Schleife legt für jeden Teil der ersten Zeile eine neue Spalte im Data Grid an
   DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn(); // Neues Spaltenobjekt

   column.Name = cellValue[i];  //Gibt der Spalte einen internen Name
   column.HeaderText = cellValue[i]; //Gibt der Spalte einen sichtbaren Name
   dataGridView1.Columns.Add(column); //Fügt die Spalte dem Grid hinzu
  }

  while (streamReader.Peek() != -1) { //Diese Schleife iteriert über alle weiteren Zeilen
   rowValue = streamReader.ReadLine(); //s.o.
   cellValue = rowValue.Split(';'); //s.o.
   dataGridView1.Rows.Add(cellValue); //legt eine neue Zeile im GridView an mit den aktuellen Daten
  }

  streamReader.Close(); //schließt die Datei
 }
}

Es wäre einfacher, wenn Du das ganze in Code Tags packst und inkl. Einrückung posten würden. Meine Erläuterungen als Kommentar im Code. OK GUI scheint für Dich neu zu sein, aber den Code solltest Du als jemand der programmiert hat schon lesen können und Sachen, die Du nicht verstehst oder kennst, kannst Du in der MSDN nachlesen.

Alles ohne jetzt exakt in die Doku von dem Grid zu schauen, kann auch mal statt eine List ein Array sein, etc.
 
Zuletzt bearbeitet:
Danke Drexel!!!
Hätte da paar Fragen:
Du sprichst von "Grid" was ist das genau?
Was macht der streamReader genau?
Was ist ist die erste Zeile der Datei(Beispiel?)?
Ich lese ALLES was ich nicht verstehe in erst in der MSDN, aber das wird dort oft auch etwas zu abstrakt erklärt finde ich.

Ich bin noch 16 und blick alles nicht auf anhieb, bitte um Verständnis :D
 
Zurück
Oben