Praca z zarządzaniem arkuszami kalkulacyjnymi
Praca z zarządzaniem arkuszami kalkulacyjnymi
Klasa Workbook jest punktem wejścia dla wszystkich operacji na arkuszach kalkulacyjnych w Aspose.Cells FOSS dla C++. Udostępnia metody do tworzenia nowych skoroszytów, ładowania istniejących plików XLSX, zarządzania arkuszami oraz zapisywania wyniku.
Tworzenie nowego skoroszytu
Zainstancjuj Workbook, aby utworzyć pusty skoroszyt. Domyślny arkusz jest tworzony automatycznie.
#include "aspose/cells_foss/Workbook.h"
#include "aspose/cells_foss/Worksheet.h"
using namespace Aspose::Cells_FOSS;
int main() {
Workbook workbook;
Worksheet& sheet = workbook.GetWorksheets()[0];
sheet.SetName("Summary");
workbook.Save("output.xlsx");
return 0;
}Ładowanie istniejącego skoroszytu
Przekaż ścieżkę do pliku do konstruktora Workbook, aby wczytać istniejący plik XLSX. Po wczytaniu arkusze i dane komórek są dostępne od razu.
Workbook workbook("existing.xlsx");
Worksheet& sheet = workbook.GetWorksheets()[0];
// Access or modify cells here
workbook.Save("modified.xlsx");Konfigurowanie właściwości arkusza
Klasa Worksheet udostępnia właściwości wyświetlania i ochrony. Użyj ich do skonfigurowania widoczności arkusza, wyświetlania siatki, powiększenia i koloru zakładki.
Worksheet& sheet = workbook.GetWorksheets()[0];
sheet.SetName("Data");
sheet.SetShowGridlines(false);
sheet.SetShowRowColumnHeaders(true);
sheet.SetZoom(80);Ochrona i usuwanie ochrony arkusza
Wywołaj Worksheet::Protect, aby zablokować arkusz przed edycjami, oraz Worksheet::Unprotect, aby usunąć ochronę:
sheet.Protect("password");
// ... distribute the workbook ...
sheet.Unprotect("password");Zapewnienie unikalności arkusza i zakresu nazw zdefiniowanych
Podczas programowego dodawania wielu arkuszy, użyj Workbook::EnsureUniqueSheetName, aby uniknąć kolizji nazw. Użyj Workbook::EnsureValidDefinedNameScope, aby zweryfikować, że nazwy zdefiniowane mają prawidłowy zakres.
workbook.EnsureUniqueSheetName();
workbook.EnsureUniqueDefinedName();Zapisywanie skoroszytu
Wywołaj Workbook::Save(fileName), aby zapisać skoroszyt na dysku. Wiele przeciążeń przyjmuje nazwę pliku, strumień lub jawny SaveFormat.
workbook.Save("products.xlsx");Wskazówki i najlepsze praktyki
- Zawsze wywołuj
Workbook::Dispose()po zakończeniu pracy z skoroszytem, aby zwolnić niezarządzane zasoby. - Nazwy arkuszy muszą być unikalne w obrębie skoroszytu — użyj
EnsureUniqueSheetNamepo dodaniu wsadowym. - Ustaw
Worksheet::SetShowGridlines(false)dla arkuszy w stylu prezentacji, aby poprawić czytelność. - Użyj
Worksheet::SetZoom(value), aby ustawić domyślny poziom powiększenia (procentowo) dla widoków arkuszy. - Kolory kart przypisane za pomocą
Worksheet::SetTabColorpomagają użytkownikom wizualnie odróżniać arkusze.
Typowe problemy
| Problem | Przyczyna | Rozwiązanie |
|---|---|---|
| Nie znaleziono pliku podczas ładowania | Nieprawidłowa ścieżka | Użyj ścieżki bezwzględnej lub sprawdź katalog roboczy |
| Kolizja nazw arkuszy | Duplikaty nazw przy dodawaniu arkuszy | Wywołaj EnsureUniqueSheetName() po każdym dodaniu |
| Zmiany w skoroszycie nie zostały zapisane | Save nie wywołano | Zawsze wywołuj workbook.Save(path) przed zakończeniem |
| Ostrzeżenia o wycieku pamięci | Dispose nie wywołano | Wywołaj workbook.Dispose() na końcu zakresu |
API Reference Podsumowanie
| Klasa/Metoda | Opis |
|---|---|
Workbook() | Tworzy nowy pusty skoroszyt |
Workbook(filePath) | Ładuje istniejący plik XLSX |
Workbook::Save(fileName) | Zapisuje skoroszyt na dysku |
Workbook::EnsureUniqueSheetName() | Rozwiązuje duplikaty nazw arkuszy |
Workbook::Dispose() | Zwalnia zasoby |
Worksheet::SetName(name) | Zmienia nazwę arkusza |
Worksheet::SetShowGridlines(bool) | Przełącza widoczność linii siatki |
Worksheet::SetZoom(percent) | Ustawia domyślny procent powiększenia |
Worksheet::Protect(password) | Blokuje arkusz |
Worksheet::Unprotect(password) | Odblokowuje arkusz |