1. Produkty
  2.   Arkusz
  3.   C++
  4.   libxls
 
  

Otwarta Biblioteka C do Odczytu Plików Excel XLS

Lekkka i szybka otwartoźródłowa darmowa biblioteka C do ładowania, odczytu i ekstrakcji danych z plików Excel XLS bez konieczności posiadania Microsoft Excel.

Czym jest libxls?

Praca z plikami Microsoft Excel jest powszechnym wymogiem w wielu aplikacjach programowych. Chociaż nowoczesne arkusze kalkulacyjne używają formatu XLSX, niezliczone organizacje wciąż polegają na starszych plikach XLS. Odczytywanie i wyodrębnianie danych z tych plików może być trudne, ponieważ binarny format XLS jest własnościowy i skomplikowany. libxls to otwarto‑źródłowa biblioteka C specjalnie zaprojektowana, aby uprościć to zadanie. Zapewnia szybkie i lekkie rozwiązanie do odczytu plików Excel 97–2003 XLS bez konieczności posiadania Microsoft Excel ani żadnych zewnętrznych komponentów Office.

libxls jest przenośną biblioteką C, która umożliwia programistom odczytywanie i wyodrębnianie informacji z arkuszy kalkulacyjnych Microsoft Excel XLS. Obsługuje pliki Excel 97–2003 (.xls), wiele arkuszy, wartości komórek i informacje o formatowaniu, tekst Unicode, wyodrębnianie dat i liczb, rozwój wieloplatformowy i wiele więcej. W przeciwieństwie do podejść automatyzacji biurowej, libxls działa niezależnie od Microsoft Office, co czyni go odpowiednim dla systemów Linux, macOS, Windows oraz środowisk wbudowanych. Dzięki swojej prostocie, przenośności i wydajności, libxls jest szeroko stosowany w narzędziach do migracji danych, konwerterach arkuszy, aplikacjach raportowych i projektach oprogramowania wieloplatformowego.

Previous Next

Rozpoczęcie pracy z libxls

libxls obsługuje CMake do budowania i instalacji biblioteki. Proszę użyć następującego polecenia.

Zainstaluj libxls przez CRAN

 mkdir build
cd build

cmake ..
make
 

Sklonuj repozytorium kodu źródłowego libxls z GitHub. Proszę użyć następującego kodu.

Zainstaluj libxls przez GitHub

 git clone https://github.com/libxls/libxls.git
# Or use your preferred protocol instead of https 

Odczytywanie starszych plików Excel XLS za pomocą biblioteki C

Jedną z największych zalet libxls jest jego zdolność do parsowania binarnych plików Excel 97–2003 w formacie XLS. Biblioteka rozumie wewnętrzną strukturę tych arkuszy kalkulacyjnych i umożliwia aplikacjom dostęp do wierszy, kolumn i wartości komórek bez konieczności posiadania Microsoft Excel. Ta funkcja jest szczególnie przydatna dla organizacji, które nadal archiwizują dane historyczne w formacie XLS. Programiści mogą łatwo tworzyć narzędzia importu i automatyzować procesy ekstrakcji danych, zachowując kompatybilność ze starszymi dokumentami. Poniższy przykład otwiera skoroszyt Excel XLS przy użyciu kodowania UTF-8. Po załadowaniu skoroszytu programiści mogą uzyskać dostęp do arkuszy i wyodrębnić dane z arkusza kalkulacyjnego.

Jak odczytać pliki Excel XLS za pomocą biblioteki C

#include 

int main()
{
    xlsWorkBook *workbook;
    workbook = xls_open("sample.xls", "UTF-8");

    if(workbook)
    {
        printf("Workbook opened successfully\n");
        xls_close_WB(workbook);
    }

    return 0;
}

Dostęp do wielu arkuszy za pomocą biblioteki C

Wiele plików Excel zawiera kilka arkuszy, które organizują informacje w różnych sekcjach. libxls udostępnia interfejsy API do nawigacji i odczytu każdego arkusza niezależnie. Ta funkcja jest przydatna przy przetwarzaniu raportów finansowych, faktur, arkuszy inwentaryzacyjnych lub zestawów danych naukowych. Programiści mogą iterować po wszystkich arkuszach i automatycznie wyodrębniać informacje bez interwencji użytkownika. Poniższy kod otwiera skoroszyt i pobiera łączną liczbę dostępnych w pliku arkuszy.

Jak pobrać całkowitą liczbę arkuszy w pliku XLS przy użyciu C?

#include 

int main()
{
    xlsWorkBook *wb = xls_open("report.xls", "UTF-8");

    if(wb)
    {
        printf("Number of sheets: %d\n", wb->sheets.count);

        xls_close_WB(wb);
    }

    return 0;
}

Odczytywanie wartości komórek za pomocą biblioteki C

Open source'owa biblioteka libxls umożliwia aplikacjom dostęp do pojedynczych komórek i pobieranie ich zawartości. Niezależnie od tego, czy arkusz zawiera tekst, liczby czy daty, biblioteka zapewnia prosty dostęp do informacji o komórkach. Ta funkcjonalność sprawia, że libxls nadaje się do importowania danych z arkuszy kalkulacyjnych do baz danych, generowania raportów lub konwertowania dokumentów Excel na formaty CSV i JSON. Poniższy przykład kodu odczytuje pierwszą komórkę w arkuszu i wypisuje jej wartość w konsoli.

Jak uzyskać dostęp do komórek arkusza i wydrukować ich wartość przy użyciu biblioteki C?

#include 

int main()
{
    xlsWorkBook *wb = xls_open("sample.xls", "UTF-8");

    if(wb)
    {
        xlsWorkSheet *sheet = xls_getWorkSheet(wb, 0);
        xls_parseWorkSheet(sheet);

        xlsCell *cell = xls_cell(sheet, 0, 0);

        if(cell)
            printf("Cell value: %s\n", cell->str);

        xls_close_WS(sheet);
        xls_close_WB(wb);
    }

    return 0;
}

Obsługa Unicode i kodowania znaków

Współczesne aplikacje często pracują z wielojęzycznymi arkuszami kalkulacyjnymi. libxls obsługuje tekst Unicode poprzez konfigurowalne kodowania znaków, co umożliwia przetwarzanie plików zawierających języki międzynarodowe i znaki specjalne. Ta funkcja jest szczególnie przydatna w aplikacjach biznesowych obsługujących imiona i nazwiska klientów, adresy oraz raporty w różnych językach. Poprzez określenie kodowania UTF-8 biblioteka prawidłowo interpretuje tekst Unicode przechowywany w plikach Excel, jak pokazano w poniższym przykładzie kodu.

Jak interpretować tekst Unicode przechowywany w plikach Excel przy użyciu C?

 
xlsWorkBook *wb = xls_open("employees.xls", "UTF-8");

if(wb)
{
    printf("Workbook loaded using UTF-8 encoding\n");
}

 Polski