2016-05-27 5 views
0

Ich benutze die OpenXML-API, um eine Excel-Datei zu lesen. Ich habe einen Wrapper für die API, sodass ich direkt die Zeilen und Zellen in Excel lesen kann. Es gibt zwei Spalten, deren Werte mithilfe einer Formel wie folgt generiert werden.Lesen Zellen, die Formeln Daten mit OpenXML-API haben

= B12 & "." & C12 & "@ dtestorg.com"

Im Grunde ist es - erstellen Sie die E-Mail-Adresse mit den Vornamen und Nachnamen Zellenwerte für einen Benutzer.

Wenn ich diese Zelle wie folgt lauten, las ich es als leer:

row.XCells[6].GetValue() 

Gibt es eine spezielle Art und Weise um die Zellen zu lesen Formeln generiert Verwendung in OpenXML?

Antwort

0

ist eine Option zum Lesen & Ändern von Excel-Dokumenten mit Formeln.

Betrachten wir zum Beispiel, dass Sie eine Excel-Tabelle haben, wie unten gezeigt.

enter image description here

Schritt 1: Erstellen Sie eine Konsolenanwendung Schritt 2: Verweis auf Syncfusion.XlsIO.Base und Syncfusion.Compression.Base Baugruppen hinzufügen. Diese Baugruppen können auch von NuGet heruntergeladen werden. Schritt 3: Kopieren & den folgenden Code in dem Hauptverfahren einfügen

//Create an instance of Excel application instance 
using (ExcelEngine engine = new ExcelEngine()) 
{ 
    //Open an existing Excel workbook 
    IWorkbook workbook = engine.Excel.Workbooks.Open(@"..\..\Template.xlsx"); 
    //Access the worksheet with the name "Sheet1" 
    IWorksheet worksheet = workbook.Worksheets["Sheet1"]; 
    //Access the range/cell "C2" from the worksheet 
    IRange range = worksheet["C2"]; 

    //Access the Text to be displayed in the cell 
    Console.WriteLine("Display Text: " + range.DisplayText); 
    //Access the Formula of the cell 
    Console.WriteLine("Formula:" + range.Formula); 
} 

Die ganze Reihe von Kontrollen kostenlos (kommerzielle Anwendungen auch) zur Verfügung steht durch das Programm Gemeinschaftslizenz, wenn Sie qualifizieren. Die Community-Lizenz ist das vollständige Produkt ohne Einschränkungen oder Wasserzeichen.

Hinweis: Ich arbeite für Syncfusion.