Použijte ICellsDataTableDataSource pro Workbook Designer

Zavedení

Vytváření pokročilých tabulek s automatizovanou integrací dat může změnit hru, zejména v podnikových aplikacích. V tomto tutoriálu se ponoříme do toho, jak používatICellsDataTableDataSourcepro návrháře sešitu v Aspose.Cells pro .NET. Provedeme vás vytvořením jednoduchého, člověku čitelného řešení pro dynamické načítání vlastních dat do souboru aplikace Excel. Pokud tedy pracujete se seznamy zákazníků, prodejními daty nebo čímkoli podobným, tento průvodce je pro vás!

Předpoklady

Chcete-li začít, ujistěte se, že máte následující:

  • Aspose.Cells for .NET Library – můžete si ji stáhnout zzde nebo získat bezplatnou zkušební verzi.
  • .NET Development Environment – Visual Studio je skvělá volba.
  • Základní porozumění C# – Znalost tříd a zpracování dat vám pomůže pokračovat. Než budeme pokračovat, ujistěte se, že vaše vývojové prostředí obsahuje potřebné balíčky.

Importujte balíčky

Chcete-li efektivně používat Aspose.Cells, musíte importovat základní balíčky. Níže je rychlý odkaz na požadované jmenné prostory:

using Aspose.Cells.Rendering;
using Aspose.Cells.WebExtensions;
using System;
using System.Collections;

Krok 1: Definujte třídu zákaznických dat

Chcete-li začít, vytvořte jednoduchýCustomer třída. Tato třída bude obsahovat základní podrobnosti o zákaznících, jako jeFullName aAddressBerte to jako způsob, jak definovat „tvar“ vašich dat.

public class Customer
{
    public Customer(string aFullName, string anAddress)
    {
        FullName = aFullName;
        Address = anAddress;
    }
    public string FullName { get; set; }
    public string Address { get; set; }
}

Krok 2: Nastavte třídu seznamu zákazníků

Dále definujte aCustomerList třída, která se rozšiřujeArrayList . Tento přizpůsobený seznam bude obsahovat instanceCustomer a umožnit indexovaný přístup ke každému záznamu.

public class CustomerList : ArrayList
{
    public new Customer this[int index]
    {
        get { return (Customer)base[index]; }
        set { base[index] = value; }
    }
}

V tomto kroku zabalujeme naše data do formátu, který Aspose.Cells dokáže rozpoznat a zpracovat.

Krok 3: Vytvořte třídu zdroje dat zákazníka

Tady jsou věci zajímavé. Vytvoříme aCustomerDataSource třída prováděníICellsDataTable aby byla naše data kompatibilní s návrhářem sešitů 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();
    }
}

Tento zvykCustomerDataSource třída umožňuje Aspose.Cells interpretovat každý z nichCustomer objekt jako řádek v souboru aplikace Excel.

Krok 4: Inicializujte zákaznická data

Nyní do našeho seznamu přidejte několik zákazníků. Zde načteme data, která mají být zapsána do sešitu. Podle potřeby můžete přidat další položky.

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"));

tomto příkladu pracujeme s malou datovou sadou. Tento seznam však můžete snadno rozšířit načtením dat z databáze nebo jiných zdrojů.

Krok 5: Načtěte sešit

Nyní otevřeme existující excelový sešit, který obsahuje potřebné inteligentní značky. Tento sešit bude sloužit jako naše šablona a Aspose.Cells dynamicky nahradí inteligentní značky daty zákazníků.

string sourceDir = "Your Document Directory";
Workbook workbook = new Workbook(sourceDir + "SmartMarker1.xlsx");

Zajistěte to"SmartMarker1.xlsx" obsahuje zástupné symboly jako&=Customer.FullName a&=Customer.Address kde se mají údaje vyplnit.

Krok 6: Nastavte Návrhář sešitu

Nyní nakonfigurujeme návrháře sešitu tak, aby propojil náš zdroj dat zákazníků s inteligentními značkami sešitu.

WorkbookDesigner designer = new WorkbookDesigner(workbook);
designer.SetDataSource("Customer", new CustomerDataSource(customers));

TheSetDataSource metoda váže našeCustomerDataSource k inteligentním značkám v sešitu. Každá značka označena&=Customer v Excelu budou nyní nahrazeny odpovídajícími zákaznickými údaji.

Krok 7: Zpracujte a uložte sešit

Nakonec zpracujeme sešit k vyplnění údajů a uložení výsledků.

string outputDir = "Your Document Directory";
designer.Process();
workbook.Save(outputDir + "dest.xlsx");

Tento kód spustí zpracování Smart Marker, nahradí všechny zástupné symboly daty a uloží výsledek jakodest.xlsx.

Závěr

Gratuluji! Úspěšně jste implementovaliICellsDataTableDataSource pro návrháře sešitů pomocí Aspose.Cells pro .NET. Tento přístup je ideální pro automatizaci populace dat v tabulkových procesorech, zejména při práci s dynamickými daty, jako jsou seznamy zákazníků nebo inventáře produktů. S těmito dovednostmi jste na dobré cestě k vytváření aplikací založených na datech, díky nimž bude reporting v Excelu hračkou!

FAQ

co jeICellsDataTable in Aspose.Cells?

Je to rozhraní umožňující propojení vlastních zdrojů dat s Aspose.Cells Smart Markers pro dynamickou populaci dat.

Jak mohu přizpůsobit data v šabloně sešitu?

Zástupné symboly zvané Smart Markers, jako např&=Customer.FullName, se používají. Tyto značky jsou během zpracování nahrazeny skutečnými daty.

Je Aspose.Cells for .NET zdarma?

Aspose.Cells nabízí bezplatnou zkušební verzi, ale úplný přístup vyžaduje placenou licenci. Zkontrolujte jejichzkušební verze zdarma nebonakoupit možnosti.

Mohu dynamicky přidávat další zákaznická data?

Absolutně! Jednoduše naplňteCustomerList dalšími položkami před spuštěním programu.

Kde mohu získat pomoc, když uvíznu?

Aspose má afórum podpory kde mohou uživatelé klást otázky a získat pomoc od komunity a týmu Aspose.