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