Verwenden von ICellsDataTableDataSource für Workbook Designer
Einführung
Das Erstellen von erweiterten Tabellen mit automatischer Datenintegration kann bahnbrechend sein, insbesondere bei Geschäftsanwendungen. In diesem Tutorial erfahren Sie, wie SieICellsDataTableDataSource
für einen Arbeitsmappen-Designer in Aspose.Cells für .NET. Wir führen Sie durch den Aufbau einer einfachen, menschenlesbaren Lösung zum dynamischen Laden benutzerdefinierter Daten in eine Excel-Datei. Wenn Sie also mit Kundenlisten, Verkaufsdaten oder Ähnlichem arbeiten, ist dieser Leitfaden genau das Richtige für Sie!
Voraussetzungen
Stellen Sie zunächst sicher, dass Sie über Folgendes verfügen:
- Aspose.Cells für .NET-Bibliothek – Sie können es herunterladen vonHier oder holen Sie sich eine kostenlose Testversion.
- .NET-Entwicklungsumgebung – Visual Studio ist eine gute Wahl.
- Grundlegende Kenntnisse in C# – Vertrautheit mit Klassen und Datenverarbeitung wird Ihnen helfen, den Schritten zu folgen. Bevor wir fortfahren, stellen Sie sicher, dass Ihre Entwicklungsumgebung mit den erforderlichen Paketen eingerichtet ist.
Pakete importieren
Um Aspose.Cells effektiv nutzen zu können, müssen Sie wichtige Pakete importieren. Nachfolgend finden Sie eine Kurzreferenz für die erforderlichen Namespaces:
using Aspose.Cells.Rendering;
using Aspose.Cells.WebExtensions;
using System;
using System.Collections;
Schritt 1: Definieren Sie eine Kundendatenklasse
Erstellen Sie zunächst eine einfacheCustomer
Klasse. Diese Klasse enthält grundlegende Kundendaten wieFullName
UndAddress
Betrachten Sie es als eine Möglichkeit, die „Form“ Ihrer Daten zu definieren.
public class Customer
{
public Customer(string aFullName, string anAddress)
{
FullName = aFullName;
Address = anAddress;
}
public string FullName { get; set; }
public string Address { get; set; }
}
Schritt 2: Einrichten der Kundenlistenklasse
Definieren Sie als nächstes einenCustomerList
Klasse, die erweitertArrayList
. Diese benutzerdefinierte Liste enthält Instanzen vonCustomer
und erlauben Sie den indizierten Zugriff auf jeden Eintrag.
public class CustomerList : ArrayList
{
public new Customer this[int index]
{
get { return (Customer)base[index]; }
set { base[index] = value; }
}
}
In diesem Schritt verpacken wir unsere Daten in ein Format, das Aspose.Cells erkennen und verarbeiten kann.
Schritt 3: Erstellen der Kundendatenquellenklasse
Hier wird es interessant. Wir erstellen eineCustomerDataSource
Klasse, die implementiertICellsDataTable
um unsere Daten mit dem Arbeitsmappen-Designer von Aspose.Cells kompatibel zu machen.
public class CustomerDataSource : ICellsDataTable
{
internal string[] m_Columns;
internal ICollection m_DataSource;
private Hashtable m_PropHash;
private IEnumerator m_IEnumerator;
private PropertyInfo[] m_Properties;
public CustomerDataSource(CustomerList customers)
{
this.m_DataSource = customers;
this.m_Properties = customers[0].GetType().GetProperties();
this.m_Columns = new string[this.m_Properties.Length];
this.m_PropHash = new Hashtable(this.m_Properties.Length);
for (int i = 0; i < m_Properties.Length; i++)
{
this.m_Columns[i] = m_Properties[i].Name;
this.m_PropHash.Add(m_Properties[i].Name, m_Properties[i]);
}
this.m_IEnumerator = this.m_DataSource.GetEnumerator();
}
public string[] Columns => this.m_Columns;
public int Count => this.m_DataSource.Count;
public void BeforeFirst()
{
this.m_IEnumerator = this.m_DataSource.GetEnumerator();
}
public object this[int index] => this.m_Properties[index].GetValue(this.m_IEnumerator.Current, null);
public object this[string columnName] => ((PropertyInfo)this.m_PropHash[columnName]).GetValue(this.m_IEnumerator.Current, null);
public bool Next()
{
if (this.m_IEnumerator == null)
return false;
return this.m_IEnumerator.MoveNext();
}
}
Dieser BrauchCustomerDataSource
Klasse ermöglicht es Aspose.Cells, jedeCustomer
Objekt als Zeile in der Excel-Datei.
Schritt 4: Initialisieren der Kundendaten
Fügen wir nun einige Kunden zu unserer Liste hinzu. Hier laden wir die Daten, die in die Arbeitsmappe geschrieben werden sollen. Sie können bei Bedarf weitere Einträge hinzufügen.
CustomerList customers = new CustomerList();
customers.Add(new Customer("Thomas Hardy", "120 Hanover Sq., London"));
customers.Add(new Customer("Paolo Accorti", "Via Monte Bianco 34, Torino"));
In diesem Beispiel arbeiten wir mit einem kleinen Datensatz. Sie können diese Liste jedoch problemlos erweitern, indem Sie Daten aus einer Datenbank oder anderen Quellen laden.
Schritt 5: Laden Sie die Arbeitsmappe
Öffnen wir nun eine vorhandene Excel-Arbeitsmappe, die die erforderlichen Smart Markers enthält. Diese Arbeitsmappe dient als Vorlage und Aspose.Cells ersetzt die Smart Markers dynamisch durch die Kundendaten.
string sourceDir = "Your Document Directory";
Workbook workbook = new Workbook(sourceDir + "SmartMarker1.xlsx");
Stellen Sie sicher, dass"SmartMarker1.xlsx"
enthält Platzhalter wie&=Customer.FullName
Und&=Customer.Address
wo Daten eingetragen werden sollen.
Schritt 6: Einrichten des Arbeitsmappen-Designers
Konfigurieren wir nun den Arbeitsmappen-Designer so, dass unsere Kundendatenquelle mit den Smart Markers der Arbeitsmappe verknüpft wird.
WorkbookDesigner designer = new WorkbookDesigner(workbook);
designer.SetDataSource("Customer", new CustomerDataSource(customers));
DerSetDataSource
Methode verbindet unsereCustomerDataSource
zu den Smart Markern in der Arbeitsmappe. Jeder Marker mit der Bezeichnung&=Customer
in Excel werden nun durch die entsprechenden Kundendaten ersetzt.
Schritt 7: Verarbeiten und Speichern der Arbeitsmappe
Lassen Sie uns abschließend die Arbeitsmappe verarbeiten, um die Daten einzutragen und die Ergebnisse zu speichern.
string outputDir = "Your Document Directory";
designer.Process();
workbook.Save(outputDir + "dest.xlsx");
Dieser Code löst die Smart Marker-Verarbeitung aus, ersetzt alle Platzhalter durch Daten und speichert das Ergebnis alsdest.xlsx
.
Abschluss
Herzlichen Glückwunsch! Sie haben erfolgreich implementiertICellsDataTableDataSource
für einen Arbeitsmappen-Designer, der Aspose.Cells für .NET verwendet. Dieser Ansatz ist ideal für die Automatisierung der Datenbefüllung in Tabellen, insbesondere beim Umgang mit dynamischen Daten wie Kundenlisten oder Produktbeständen. Mit diesen Fähigkeiten sind Sie auf dem besten Weg, datengesteuerte Anwendungen zu erstellen, die Excel-basierte Berichte zum Kinderspiel machen!
Häufig gestellte Fragen
Was istICellsDataTable
in Aspose.Cells?
Es handelt sich um eine Schnittstelle, die die Verknüpfung benutzerdefinierter Datenquellen mit Aspose.Cells Smart Markers zur dynamischen Datenpopulation ermöglicht.
Wie kann ich Daten in der Arbeitsmappenvorlage anpassen?
Platzhalter, sogenannte Smart Marker, wie&=Customer.FullName
, verwendet. Diese Markierungen werden bei der Verarbeitung durch echte Daten ersetzt.
Ist Aspose.Cells für .NET kostenlos?
Aspose.Cells bietet eine kostenlose Testversion an, für den vollständigen Zugriff ist jedoch eine kostenpflichtige Lizenz erforderlich. Überprüfen Sie derenKostenlose Testversion oderkaufen Optionen.
Kann ich dynamisch weitere Kundendaten hinzufügen?
Auf jeden Fall! Füllen Sie einfach dieCustomerList
mit zusätzlichen Einträgen vor dem Ausführen des Programms.
Wo bekomme ich Hilfe, wenn ich nicht weiterkomme?
Aspose hat eineSupport-Forum wo Benutzer Fragen stellen und Unterstützung von der Community und dem Aspose-Team erhalten können.