C# Mit C# Exceldatei bearbeiten aber wie?

Robymon

Cadet 4th Year
Registriert
Okt. 2014
Beiträge
76
Hey Zusammen,

hier bin ich mal wieder....
Bin jetzt so weit das ich abspeichern und abfragen kann, ebenfalls kann mein Programm die abgespeicherten Daten in eine
Excel Datei schreiben. Das Problem ist Leider nur das es so aussieht:

wieesaussieht.JPG


aber das programm soll es so erstellen:

wieesaussehensollte.JPG

Würde mich über Hilfe freuen :)
 
Code:
 DataSet ds = new DataSet("New_DataSet");
            System.Data.DataTable dt = new System.Data.DataTable("New_DataTable");

            ds.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;
            dt.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;


            SaveFileDialog dlg = new SaveFileDialog();
            string date = DateTime.Now.ToString("MM'.'dd'.'yyyy");
            dlg.FileName = "Vocabulary"; //File name
            dlg.DefaultExt = ".xlsx"; //File extension
            dlg.Filter = "Excel Workbook (.xlsx)|*.xlsx";

            //Zeigt den save file dialog
            Nullable<bool> result = dlg.ShowDialog();

            if (result == true)
            {
                txtToDataTable txt = new txtToDataTable();
                dt = txt.SendTxtToDataTable(@"Vokabel.txt", ';', "English", "Deutsch", "Synonym");

                // load excel, and create a new workbook
                Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
                excelApp.Workbooks.Add();

                // single worksheet
                Microsoft.Office.Interop.Excel._Worksheet workSheet = excelApp.ActiveSheet;

                // column headings
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    workSheet.Cells[1, (i + 1)] = dt.Columns[i].ColumnName;

                }

                // rows
                for (int i = 0; i < dt.Rows.Count; i++)
                {

                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        workSheet.Cells[(i + 2), (j + 1)] = dt.Rows[i][j];

                    }
                }



                workSheet.SaveAs(dlg.FileName);
                excelApp.Quit();

            }


Das ist mein Code zum erstellen und so weiter.
Hoffe du kommst Klar haha :D
 
Ja, arbeite auch gerade damit. Allerdings in C++.

Hilft dir das weiter? Zumindest was den Rahmen betrifft?

Oder das?
Code:
    private void BorderAround(Excel.Range range, int colour)
    {
        Excel.Borders borders = range.Borders;
        borders[Excel.XlBordersIndex.xlEdgeLeft].LineStyle = Excel.XlLineStyle.xlContinuous;
        borders[Excel.XlBordersIndex.xlEdgeTop].LineStyle = Excel.XlLineStyle.xlContinuous;
        borders[Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Excel.XlLineStyle.xlContinuous;
        borders[Excel.XlBordersIndex.xlEdgeRight].LineStyle = Excel.XlLineStyle.xlContinuous;
        borders.Color = colour;
        borders[Excel.XlBordersIndex.xlInsideVertical].LineStyle = Excel.XlLineStyle.xlLineStyleNone;
        borders[Excel.XlBordersIndex.xlInsideHorizontal].LineStyle = Excel.XlLineStyle.xlLineStyleNone;
        borders[Excel.XlBordersIndex.xlDiagonalUp].LineStyle = Excel.XlLineStyle.xlLineStyleNone;
        borders[Excel.XlBordersIndex.xlDiagonalDown].LineStyle = Excel.XlLineStyle.xlLineStyleNone;
        borders = null;
    }

Im Netz findest du recht viel dazu. Oder einfach im MSDN nachschlagen.
 
Zuletzt bearbeitet:
Excel-Dateien zu bearbeiten mit jedem Scheiß an Formatierungen ist eine ekelhafte kleinstarbeit. Geeignet dafür ist die Bibliothek "OfficeOpenXml", findest du im NuGet-Manager unter "DocumentFormat.OpenXml", so heißen auch die ganzen Typen.

Und sich dort einarbeiten kann sehr sehr lange dauern ... eine gute Anlaufstelle ist die zugehörige Microsoft-Seite.

Edit: Ah, du nutzt die Interop-Bibliotheken. Damit kann ich leider nicht dienen, aber Fellor scheint sich ja auszukennen.
 
IKäsebrot, genau das hat funktioniert.

Danke an alle :)
 
Zurück
Oben