Gebruik ICellsDataTableDataSource voor Workbook Designer
Invoering
Geavanceerde spreadsheets maken met geautomatiseerde data-integratie kan een game-changer zijn, vooral in zakelijke applicaties. In deze tutorial duiken we in hoe jeICellsDataTableDataSource
voor een werkboekontwerper in Aspose.Cells voor .NET. We leiden u door het bouwen van een eenvoudige, voor mensen leesbare oplossing om aangepaste gegevens dynamisch in een Excel-bestand te laden. Dus als u werkt met klantenlijsten, verkoopgegevens of iets dergelijks, dan is deze gids iets voor u!
Vereisten
Om te beginnen, moet u ervoor zorgen dat u het volgende bij de hand hebt:
- Aspose.Cells voor .NET-bibliotheek – U kunt het downloaden vanhier of ontvang een gratis proefversie.
- .NET-ontwikkelomgeving – Visual Studio is een uitstekende keuze.
- Basiskennis van C# – Kennis van klassen en gegevensverwerking helpt u de cursus te volgen. Voordat we verdergaan, moet u ervoor zorgen dat uw ontwikkelomgeving is ingesteld met de benodigde pakketten.
Pakketten importeren
Om Aspose.Cells effectief te gebruiken, moet u essentiële pakketten importeren. Hieronder vindt u een snelle referentie voor de vereiste naamruimten:
using Aspose.Cells.Rendering;
using Aspose.Cells.WebExtensions;
using System;
using System.Collections;
Stap 1: Definieer een klantgegevensklasse
Om te beginnen, maak een eenvoudigeCustomer
klasse. Deze klasse bevat basisgegevens van klanten, zoalsFullName
EnAddress
Zie het als een manier om de ‘vorm’ van uw gegevens te definiëren.
public class Customer
{
public Customer(string aFullName, string anAddress)
{
FullName = aFullName;
Address = anAddress;
}
public string FullName { get; set; }
public string Address { get; set; }
}
Stap 2: Stel de klantenlijstklasse in
Definieer vervolgens eenCustomerList
klasse die zich uitstrektArrayList
. Deze aangepaste lijst bevat instanties vanCustomer
en geïndexeerde toegang tot elk item toestaan.
public class CustomerList : ArrayList
{
public new Customer this[int index]
{
get { return (Customer)base[index]; }
set { base[index] = value; }
}
}
In deze stap verpakken we onze gegevens in een formaat dat Aspose.Cells kan herkennen en verwerken.
Stap 3: De klantgegevensbronklasse maken
Hier wordt het interessant. We gaan eenCustomerDataSource
klasse implementerenICellsDataTable
om onze gegevens compatibel te maken met de werkmapontwerper van Aspose.Cells.
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();
}
}
Deze gewoonteCustomerDataSource
klasse maakt het mogelijk voor Aspose.Cells om elkCustomer
object als een rij in het Excel-bestand.
Stap 4: Initialiseer de klantgegevens
Laten we nu wat klanten aan onze lijst toevoegen. Hier laden we de gegevens die in de werkmap moeten worden geschreven. Voel je vrij om meer items toe te voegen als dat nodig is.
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 dit voorbeeld werken we met een kleine dataset. U kunt deze lijst echter eenvoudig uitbreiden door gegevens uit een database of andere bronnen te laden.
Stap 5: Laad de werkmap
Laten we nu een bestaande Excel-werkmap openen die de benodigde Smart Markers bevat. Deze werkmap zal dienen als onze template, en Aspose.Cells zal Smart Markers dynamisch vervangen met de klantgegevens.
string sourceDir = "Your Document Directory";
Workbook workbook = new Workbook(sourceDir + "SmartMarker1.xlsx");
Zorg ervoor dat"SmartMarker1.xlsx"
bevat tijdelijke aanduidingen zoals&=Customer.FullName
En&=Customer.Address
waar gegevens moeten worden ingevuld.
Stap 6: Stel de werkmapontwerper in
Laten we nu de werkmapontwerper configureren om onze klantgegevensbron te koppelen aan de slimme markeringen van de werkmap.
WorkbookDesigner designer = new WorkbookDesigner(workbook);
designer.SetDataSource("Customer", new CustomerDataSource(customers));
DeSetDataSource
methode bindt onzeCustomerDataSource
naar de Smart Markers in de werkmap. Elke marker is gelabeld&=Customer
in Excel worden nu vervangen door de bijbehorende klantgegevens.
Stap 7: Verwerk en sla de werkmap op
Tot slot gaan we de werkmap verwerken om de gegevens in te vullen en de resultaten op te slaan.
string outputDir = "Your Document Directory";
designer.Process();
workbook.Save(outputDir + "dest.xlsx");
Deze code activeert de verwerking van Smart Marker, vervangt alle tijdelijke aanduidingen door gegevens en slaat het resultaat op alsdest.xlsx
.
Conclusie
Gefeliciteerd! U hebt succesvol geïmplementeerdICellsDataTableDataSource
voor een werkboekontwerper die Aspose.Cells voor .NET gebruikt. Deze aanpak is ideaal voor het automatiseren van het vullen van gegevens in spreadsheets, vooral bij het werken met dynamische gegevens zoals klantenlijsten of productinventarissen. Met deze vaardigheden bent u goed op weg om datagestuurde applicaties te bouwen die Excel-gebaseerde rapportage een fluitje van een cent maken!
Veelgestelde vragen
Wat isICellsDataTable
in Aspose.Cells?
Het is een interface waarmee aangepaste gegevensbronnen kunnen worden gekoppeld aan Aspose.Cells Smart Markers voor dynamische gegevensinvulling.
Hoe kan ik gegevens in de werkmapsjabloon aanpassen?
Plaatsaanduidingen die slimme markeringen worden genoemd, zoals&=Customer.FullName
, worden gebruikt. Deze markers worden tijdens de verwerking vervangen door echte gegevens.
Is Aspose.Cells voor .NET gratis?
Aspose.Cells biedt een gratis proefperiode, maar voor volledige toegang is een betaalde licentie vereist. Bekijk hungratis proefperiode ofkopen opties.
Kan ik dynamisch meer klantgegevens toevoegen?
Absoluut! Vul gewoon deCustomerList
met aanvullende vermeldingen voordat u het programma uitvoert.
Waar kan ik hulp krijgen als ik ergens niet uitkom?
Aspose heeft eenondersteuningsforum waar gebruikers vragen kunnen stellen en hulp kunnen krijgen van de community en het Aspose-team.