Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

Excel Datei Blatt Zellen einlesen in C#

25.10.2018 (👁22967)

Code Beispiel in C#, VSTO Addin

Diese Beispiel zeigt wie man in C# Excel-Zellen lesen und auswerten kann.

Excel

Hier werden allen Zellen eines Excel-Blatts gelesen und als Meldung angezeigt.

C# Code

Unter der Datei Ribbon1.cs (Ribbonbar Beispiel)

Man muss zunächst das Office Paket in Visual Studio einbinden (Visual Studio For Office… VSTO COM usw)

using Microsoft.Office.Interop.Excel;

 

Dann bindet man das aktuelle Excel Arbeitsblatt ein

Worksheet worksheet = Globals.ThisAddIn.Application.ActiveSheet;

 

Eine Zelle kann man wie hier auslesen.

Excel Zelle

Die Excel Zelle wird mit Cells[Reihe,Spalte] als Range gebunden

Microsoft.Office.Interop.Excel.Range cell = usedRange.Cells[1, iColumn] as Range;

 

Zellwert lesen

Der angezeigte Wert in Excel wird eigentlich mit .Value2 ausgelesen.

Man sollte aber .Value2.ToString() verwenden, damit zur Laufzeit kein Umwandlungsfehler von integer int zu string erzeugt wird.

String sValue = cell.Value2.ToString();

 

Beim direkten Zugriff auf .Value2 zur Laufzeit entsteht oft der Fehler:

Fehlermeldung:

Der double-Typ kann nicht implizit in string konvertiert werden.

Gezeigtes Code-Beispiel in C#

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using Microsoft.Office.Interop.Excel;

using Microsoft.Office.Tools.Ribbon;

 

namespace ExcelAddIn01

{

    public partial class Ribbon1

    {

        private void Ribbon1_Load(object sender, RibbonUIEventArgs e)

        {

 

        }

 

        private void btnExcel_load_Click(object sender, RibbonControlEventArgs e)

        {

            //< init >

            Worksheet worksheet = Globals.ThisAddIn.Application.ActiveSheet;

            //</ init >

 

            Range usedRange = worksheet.UsedRange;

            int nColumnsMax = 0;

            String sText = "";

            if (usedRange.Rows.Count > 0)

            {

                //----< Read_Header >----

                for (int iColumn = 1; iColumn <= usedRange.Columns.Count; iColumn++)

                {

                    Microsoft.Office.Interop.Excel.Range cell = usedRange.Cells[1, iColumn] as Range;

                    String sValue = cell.Value2;

 

                    if (sValue == ""break;

                    sText = sText + Environment.NewLine + sValue;

                    nColumnsMax = iColumn;

                }

                //----</ Read_Header >----

 

                //----< Read_DataRows >----

                for (int iRow = 2; iRow <= usedRange.Rows.Count; iRow++)

                {

                    for (int iColumn = 1; iColumn < nColumnsMax; iColumn++)

                    {

                        Microsoft.Office.Interop.Excel.Range cell = usedRange.Cells[iRow, iColumn] as Range;

                        String sValue = cell.Value2.ToString();

                        sText = sText + Environment.NewLine + sValue;

                    }

                }

                //----</ Read_DataRows >----

            }

 

            MessageBox.Show(sText);

        }

    }

}

 

Betrifft:

Lesen von Excel in Zelle mit Value Value2 FormularLocal

Programmatically, zur Laufzeit in Visual Studio VSTO Office Addin