Użyj ICellsDataTableDataSource dla projektanta skoroszytów

Wstęp

Tworzenie zaawansowanych arkuszy kalkulacyjnych z automatyczną integracją danych może być przełomem, szczególnie w aplikacjach biznesowych. W tym samouczku zagłębimy się w to, jak używaćICellsDataTableDataSourcedla projektanta skoroszytów w Aspose.Cells dla .NET. Przeprowadzimy Cię przez proces tworzenia prostego, czytelnego dla człowieka rozwiązania do dynamicznego ładowania niestandardowych danych do pliku Excel. Więc jeśli pracujesz z listami klientów, danymi sprzedaży lub czymś podobnym, ten przewodnik jest dla Ciebie!

Wymagania wstępne

Aby rozpocząć, upewnij się, że masz następujące elementy:

  • Biblioteka Aspose.Cells dla .NET – Można ją pobrać ze stronyTutaj lub pobierz bezpłatną wersję próbną.
  • Środowisko programistyczne .NET – Visual Studio to świetny wybór.
  • Podstawowa znajomość języka C# – znajomość klas i obsługi danych ułatwi Ci zrozumienie tekstu. Zanim przejdziemy dalej, upewnij się, że Twoje środowisko programistyczne zawiera niezbędne pakiety.

Importuj pakiety

Aby efektywnie używać Aspose.Cells, musisz zaimportować niezbędne pakiety. Poniżej znajduje się krótki odnośnik do wymaganych przestrzeni nazw:

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

Krok 1: Zdefiniuj klasę danych klienta

Na początek utwórz prostyCustomer klasa. Ta klasa będzie zawierać podstawowe dane klienta, takie jakFullName IAddressPomyśl o tym jako o sposobie zdefiniowania „kształtu” swoich danych.

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: Skonfiguruj klasę listy klientów

Następnie zdefiniujCustomerList klasa, która się rozszerzaArrayList . Ta dostosowana lista będzie zawierać wystąpieniaCustomer i zezwól na indeksowany dostęp do każdego wpisu.

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

Na tym etapie pakujemy nasze dane do formatu, który Aspose.Cells może rozpoznać i przetworzyć.

Krok 3: Utwórz klasę źródła danych klienta

Tutaj zaczyna się robić ciekawie. StworzymyCustomerDataSource klasa wdrażającaICellsDataTable aby nasze dane były kompatybilne z projektantem skoroszytów 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();
    }
}

Ten zwyczajCustomerDataSource Klasa umożliwia Aspose.Cells interpretowanie każdegoCustomer obiekt jako wiersz w pliku Excel.

Krok 4: Zainicjuj dane klienta

Teraz dodajmy kilku klientów do naszej listy. Tutaj ładujemy dane, które mają zostać zapisane w skoroszycie. Możesz swobodnie dodawać więcej wpisów, jeśli to konieczne.

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

tym przykładzie pracujemy z małym zestawem danych. Jednak możesz łatwo rozszerzyć tę listę, ładując dane z bazy danych lub innych źródeł.

Krok 5: Załaduj skoroszyt

Teraz otwórzmy istniejący skoroszyt programu Excel, który zawiera niezbędne znaczniki inteligentne. Ten skoroszyt będzie służył jako nasz szablon, a Aspose.Cells dynamicznie zastąpi znaczniki inteligentne danymi klienta.

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

Upewnij się, że"SmartMarker1.xlsx" zawiera symbole zastępcze, takie jak&=Customer.FullName I&=Customer.Address gdzie należy wpisać dane.

Krok 6: Skonfiguruj projektanta skoroszytów

Teraz skonfigurujmy projektanta skoroszytów tak, aby powiązał źródło danych o klientach z inteligentnymi znacznikami skoroszytu.

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

TenSetDataSource metoda wiąże naszeCustomerDataSource do inteligentnych znaczników w skoroszycie. Każdy znacznik oznaczony&=Customer w programie Excel zostaną teraz zastąpione odpowiednimi danymi klienta.

Krok 7: Przetwarzanie i zapisywanie skoroszytu

Na koniec przetworzymy skoroszyt, uzupełniając dane i zapisując wyniki.

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

Ten kod uruchamia przetwarzanie Smart Marker, zastępuje wszystkie symbole zastępcze danymi i zapisuje wynik jakodest.xlsx.

Wniosek

Gratulacje! Udało Ci się wdrożyćICellsDataTableDataSource dla projektanta skoroszytów korzystającego z Aspose.Cells dla .NET. To podejście jest idealne do automatyzacji wypełniania danych w arkuszach kalkulacyjnych, zwłaszcza w przypadku danych dynamicznych, takich jak listy klientów lub inwentaryzacje produktów. Dzięki tym umiejętnościom jesteś na dobrej drodze do tworzenia aplikacji opartych na danych, które sprawiają, że raportowanie oparte na programie Excel jest dziecinnie proste!

Najczęściej zadawane pytania

Co to jestICellsDataTable in Aspose.Cells?

Jest to interfejs umożliwiający łączenie niestandardowych źródeł danych z inteligentnymi znacznikami Aspose.Cells w celu dynamicznego wypełniania danych.

Jak mogę dostosować dane w szablonie skoroszytu?

Symbole zastępcze nazywane inteligentnymi znacznikami, takie jak&=Customer.FullName, są używane. Te znaczniki są zastępowane rzeczywistymi danymi podczas przetwarzania.

Czy Aspose.Cells dla .NET jest darmowy?

Aspose.Cells oferuje bezpłatny okres próbny, ale pełny dostęp wymaga płatnej licencji. Sprawdź ichbezpłatny okres próbny Lubkupić opcje.

Czy mogę dynamicznie dodawać więcej danych klientów?

Oczywiście! Po prostu wypełnijCustomerList dodatkowymi wpisami przed uruchomieniem programu.

Gdzie mogę uzyskać pomoc, jeśli utknę?

Aspose maforum wsparcia gdzie użytkownicy mogą zadawać pytania i otrzymywać pomoc od społeczności i zespołu Aspose.