Zarządzanie skoroszytami wykresów w prezentacjach przy użyciu Java
Przegląd
Ten artykuł wyjaśnia, jak pracować z skoroszytami wykresów w Aspose.Slides. Pokazuje, jak odczytywać i zapisywać dane wykresu za pośrednictwem strumieni skoroszytu, używać komórek skoroszytu jako etykiet danych wykresu, uzyskiwać dostęp do kolekcji arkuszy oraz określać typ źródła danych dla wartości wykresu.
Omówiono także pracę z zewnętrznymi skoroszytami jako źródłami danych wykresu. Przykłady demonstrują, jak utworzyć i przypisać zewnętrzny skoroszyt, uzyskać ścieżkę zewnętrznego skoroszytu powiązanego z wykresem oraz edytować dane wykresu, gdy skoroszyt jest dostępny.
W przypadku komórek skoroszytu, które reprezentują brakujące dane, zobacz Kontrolę wyświetlania pustych komórek w celu poznania różnicy między pustą komórką a zerem oraz porównania wykresu liniowego dostępnych trybów wyświetlania.
Uwzględnianie danych z ukrytych wierszy i kolumn
Użyj IChart.setPlotVisibleCellsOnly aby kontrolować, czy wykres rysuje dane z ukrytych wierszy i kolumn arkusza. Ustaw true, aby rysować tylko widoczne komórki, lub false, aby uwzględnić zarówno widoczne, jak i ukryte komórki. To ustawienie steruje rysowaniem wykresu; nie ukrywa ani nie odsłania wierszy lub kolumn arkusza.
Pobierz hidden-source-data.pptx i umieść go w katalogu roboczym. Jego pierwszy slajd zawiera wykres kolumnowy jako pierwszy kształt. Osadzony arkusz, Sheet1, zawiera następujący zakres źródłowy, A1:C4. Wiersz 3 i kolumna C są ukryte, ale ich komórki nadal zawierają wartości.
| Wiersz arkusza | A: Miesiąc | B: Detal | C: Hurt (ukryta kolumna) |
|---|---|---|---|
| 2 | Styczeń | 10 | 30 |
| 3 (ukryty wiersz) | Luty | 40 | 60 |
| 4 | Marzec | 20 | 50 |
Uzyskaj dostęp do komórek źródłowych za pomocą IChartData.getChartDataWorkbook i odczytaj IChartDataCell.isHidden aby sprawdzić ich status ukrycia. Ta metoda zwraca status ukrycia bez jego zmiany. W tym pliku B2 jest widoczny, B3 należy do ukrytego wiersza, a C2 do ukrytej kolumny; przykład wypisuje odpowiednio false, true i true.
W tym przykładzie odśwież dane wykresu po zmianie ustawienia rysowania: zachowaj osadzony skoroszyt przy użyciu readWorkbookStream i ponownie wczytaj go przy pomocy writeWorkbookStream. Przy uwzględnianiu wszystkich komórek użyj także setRange aby przywrócić pełny zakres, włącznie z ukrytym kategorią luty. Same zmiany flagi nie wystarczą do odświeżenia buforowanych danych wykresu i etykiet kategorii w tym przykładzie.
import com.aspose.slides.*;
Presentation presentation = new Presentation("hidden-source-data.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
int shapeCount = slide.getShapes().size();
if (shapeCount > 0 && slide.getShapes().get_Item(0) instanceof IChart) {
IChart chart = (IChart) slide.getShapes().get_Item(0);
IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
System.out.println("B2 hidden: " + workbook.getCell(0, "B2").isHidden());
System.out.println("B3 hidden: " + workbook.getCell(0, "B3").isHidden());
System.out.println("C2 hidden: " + workbook.getCell(0, "C2").isHidden());
byte[] workbookData = chart.getChartData().readWorkbookStream();
for (boolean visibleOnly : new boolean[] { true, false }) {
chart.setPlotVisibleCellsOnly(visibleOnly);
// Odśwież dane wykresu z osadzonego skoroszytu.
chart.getChartData().writeWorkbookStream(workbookData);
if (!visibleOnly) {
// Przywróć pełny zakres źródłowy, w tym ukryte kategorie.
chart.getChartData().setRange("Sheet1!$A$1:$C$4");
}
presentation.save("hidden_cells_" + visibleOnly + ".pptx", SaveFormat.Pptx);
}
} else {
System.out.println("The first shape is not a chart.");
}
} finally {
presentation.dispose();
}
Przykład zapisuje hidden_cells_true.pptx z tylko widocznymi wartościami Detalu (10 i 20) oraz hidden_cells_false.pptx ze wszystkimi sześcioma wartościami. Poniższe obrazy ilustrują dwa tryby rysowania. Wiersz 3 i kolumna C pozostają ukryte w obu osadzonych skoroszytach.
Tylko widoczne komórki (true) |
Wszystkie komórki (false) |
|---|---|
![]() |
![]() |
Ukryta komórka zawierająca wartość różni się od pustej komórki. IChart.setDisplayBlanksAs steruje sposobem wyświetlania brakujących wartości; nie obejmuje ani nie wyklucza ukrytych danych źródłowych. Zobacz Kontrolę wyświetlania pustych komórek po przykład.
Odczyt i zapis danych wykresu ze skoroszytu
Aspose.Slides for Java udostępnia metody readWorkbookStream oraz writeWorkbookStream, które pozwalają odczytywać i zapisywać skoroszyty danych wykresu (zawierające dane wykresu edytowane przy pomocy Aspose.Cells). Uwaga: dane wykresu muszą być zorganizowane w ten sam sposób lub mieć strukturę podobną do źródła.
Przykład otwiera chart.pptx, który musi zawierać wykres jako pierwszy kształt na pierwszym slajdzie. Odczytuje osadzony skoroszyt do tablicy bajtów, czyści istniejące serie i kategorie oraz zapisuje ten sam skoroszyt z powrotem. Zmiany pozostają w pamięci; przykład nie zapisuje prezentacji.
import com.aspose.slides.*;
Presentation presentation = new Presentation("chart.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
int shapeCount = slide.getShapes().size();
if (shapeCount > 0 && slide.getShapes().get_Item(0) instanceof IChart) {
IChart chart = (IChart) slide.getShapes().get_Item(0);
IChartData chartData = chart.getChartData();
byte[] workbookData = chartData.readWorkbookStream();
chartData.getSeries().clear();
chartData.getCategories().clear();
chartData.writeWorkbookStream(workbookData);
} else {
System.out.println("The first shape is not a chart.");
}
} finally {
presentation.dispose();
}
Walidacja układu wykresu po modyfikacji skoroszytu
Kiedy zamieniasz osadzony skoroszyt na zmodyfikowany, wykres zachowuje oryginalne kolekcje serii i kategorii. Ta niezgodność może spowodować błąd IChart.validateChartLayout z komunikatem o indeksie poza zakresem. Wyczyść istniejące serie i kategorie przed zapisaniem zaktualizowanego skoroszytu z powrotem do wykresu. Przykład wymaga chart.pptx z wykresem jako pierwszym kształtem na pierwszym slajdzie. Komentarz wskazuje, gdzie miałoby nastąpić edytowanie skoroszytu; działający przykład zapisuje oryginalny skoroszyt z powrotem i w pamięci waliduje układ.
import com.aspose.slides.*;
Presentation presentation = new Presentation("chart.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
int shapeCount = slide.getShapes().size();
if (shapeCount > 0 && slide.getShapes().get_Item(0) instanceof IChart) {
IChart chart = (IChart) slide.getShapes().get_Item(0);
IChartData chartData = chart.getChartData();
byte[] workbookData = chartData.readWorkbookStream();
// Modyfikuj bajty skoroszytu tutaj, na przykład przy użyciu Aspose.Cells.
chartData.getSeries().clear();
chartData.getCategories().clear();
chartData.writeWorkbookStream(workbookData);
chart.validateChartLayout();
} else {
System.out.println("The first shape is not a chart.");
}
} finally {
presentation.dispose();
}
Czyszczenie kolekcji usuwa nieaktualne odwołania przed zapisaniem skoroszytu. Przed użyciem wykresu odtwórz wymagane mapowania serii i kategorii dla zaktualizowanego skoroszytu.
Ustawienie komórki skoroszytu jako etykiety danych wykresu
Możesz używać tekstu z komórek skoroszytu jako etykiet danych wykresu. Poniższe kroki pokazują, jak połączyć etykiety w wykresie bąbelkowym z komórkami w jego skoroszycie danych.
- Utwórz instancję klasy Presentation.
- Uzyskaj dostęp do pierwszego slajdu za pomocą indeksu zerowego.
- Dodaj wykres bąbelkowy z domyślnymi danymi.
- Uzyskaj dostęp do serii wykresu.
- Ustaw komórkę skoroszytu jako etykietę danych.
- Zapisz prezentację.
Przykład otwiera chart2.pptx, który musi zawierać co najmniej jeden slajd, i dodaje wykres bąbelkowy z domyślnymi danymi. Używa komórek A10:A12 w arkuszu 0 dla pierwszych trzech etykiet w pierwszej serii, włącza etykiety z komórek i zapisuje wynik jako resultchart.pptx.
import com.aspose.slides.*;
Presentation presentation = new Presentation("chart2.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.Bubble, 50, 50, 600, 400, true);
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
series.getLabels().getDefaultDataLabelFormat().setShowLabelValueFromCell(true);
series.getLabels().get_Item(0).setValueFromCell(workbook.getCell(0, "A10", "Label 0 cell value"));
series.getLabels().get_Item(1).setValueFromCell(workbook.getCell(0, "A11", "Label 1 cell value"));
series.getLabels().get_Item(2).setValueFromCell(workbook.getCell(0, "A12", "Label 2 cell value"));
presentation.save("resultchart.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Zarządzanie arkuszami
Metoda IChartDataWorkbook.getWorksheets zapewnia dostęp do arkuszy w skoroszycie wykresu. Przykład tworzy wykres kołowy z domyślnymi danymi i wypisuje każdą nazwę arkusza na konsolę.
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.Pie, 50, 50, 400, 500);
IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
for (int i = 0; i < workbook.getWorksheets().size(); i++) {
System.out.println(workbook.getWorksheets().get_Item(i).getName());
}
} finally {
presentation.dispose();
}
Określenie typu źródła danych
Przykład tworzy wykres kolumnowy 3D z domyślnymi danymi i ustawia dwie nazwy serii przy użyciu różnych źródeł danych. Pierwsza nazwa używa literału znakowego; druga używa komórki C1 w arkuszu 0. Enumeracja DataSourceType wybiera źródło dla każdej nazwy. Wynik jest zapisywany jako pres.pptx.
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.Column3D, 50, 50, 600, 400, true);
IStringChartValue literalName = chart.getChartData().getSeries().get_Item(0).getName();
literalName.setDataSourceType(DataSourceType.StringLiterals);
literalName.setData("LiteralString");
IStringChartValue cellName = chart.getChartData().getSeries().get_Item(1).getName();
IChartDataCell nameCell = chart.getChartData().getChartDataWorkbook().getCell(0, "C1", "NewCell");
cellName.setDataSourceType(DataSourceType.Worksheet);
cellName.setData(nameCell);
presentation.save("pres.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Wykrywanie nieobsługiwanych formatów osadzonych skoroszytów
Aspose.Slides nie obsługuje binarnego formatu skoroszytu Excel (.xlsb), który może być osadzony w niektórych wykresach. Możesz użyć metody getEmbeddedWorkbookType na IChartData wraz z enumeracją WorkbookType, aby wykryć nieobsługiwane formaty i pominąć takie wykresy. Przykład analizuje kształty na pierwszym slajdzie sample.pptx, pomija kształty niebędące wykresami i wypisuje komunikat diagnostyczny dla każdego wykresu z osadzonym skoroszytem .xlsb.
import com.aspose.slides.*;
Presentation presentation = new Presentation("sample.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
for (IShape shape : slide.getShapes()) {
if (!(shape instanceof IChart)) {
continue;
}
IChart chart = (IChart) shape;
IChartData chartData = chart.getChartData();
boolean isInternalWorkbook = chartData.getDataSourceType() == ChartDataSourceType.InternalWorkbook;
boolean isBinaryMacro = chartData.getEmbeddedWorkbookType() == WorkbookType.WorkbookBinaryMacro;
if (isInternalWorkbook && isBinaryMacro) {
System.out.println("Skipping a chart with an unsupported .xlsb workbook.");
continue;
}
// Odczytaj lub zmodyfikuj obsługiwane dane skoroszytu wykresu tutaj.
}
} finally {
presentation.dispose();
}
Zewnętrzny skoroszyt
Aspose.Slides obsługuje używanie zewnętrznych skoroszytów jako źródła danych dla wykresów.
Utworzenie zewnętrznego skoroszytu
Użyj readWorkbookStream oraz setExternalWorkbook aby wyeksportować osadzony skoroszyt wykresu do pliku i połączyć wykres z tym zewnętrznym skoroszytem.
Przykład tworzy wykres kołowy z domyślnymi danymi, zapisuje jego skoroszyt jako externalWorkbook1.xlsx i kończy zapisywanie pliku przed przypisaniem go jako źródło danych wykresu. Zapisuje połączoną prezentację jako externalWorkbook.pptx.
import com.aspose.slides.*;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.Pie, 50, 50, 400, 600);
Path workbookPath = Paths.get("externalWorkbook1.xlsx").toAbsolutePath();
byte[] workbookData = chart.getChartData().readWorkbookStream();
try {
Files.write(workbookPath, workbookData);
chart.getChartData().setExternalWorkbook(workbookPath.toString());
presentation.save("externalWorkbook.pptx", SaveFormat.Pptx);
} catch (IOException exception) {
System.out.println("Could not write the external workbook: " + exception.getMessage());
}
} finally {
presentation.dispose();
}
Ustawienie zewnętrznego skoroszytu
Przy użyciu metody setExternalWorkbook możesz przypisać zewnętrzny skoroszyt do wykresu jako jego źródło danych. Metoda ta może być także użyta do aktualizacji ścieżki do zewnętrznego skoroszytu (jeśli został on przeniesiony).
Choć nie można edytować danych w skoroszytach przechowywanych w zdalnych lokalizacjach lub zasobach, nadal można je używać jako zewnętrznego źródła danych. Jeśli podano względną ścieżkę do zewnętrznego skoroszytu, zostanie ona automatycznie przekształcona na pełną ścieżkę.
Przykład wymaga pliku externalWorkbook.xlsx w katalogu roboczym. Jego arkusz o nazwie Sheet1 musi zawierać nazwę serii w B1, nazwy kategorii w A2:A4 oraz wartości liczbowe w B2:B4. Przykład tworzy wykres kołowy, łączy skoroszyt i używa setRange do mapowania A1:B4 na jedną serię i trzy kategorie. Zapisuje wynik jako Presentation_with_externalWorkbook.pptx.
import com.aspose.slides.*;
import java.nio.file.Paths;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.Pie, 50, 50, 400, 600, true);
IChartData chartData = chart.getChartData();
String workbookPath = Paths.get("externalWorkbook.xlsx").toAbsolutePath().toString();
chartData.setExternalWorkbook(workbookPath);
chartData.setRange("Sheet1!$A$1:$B$4");
presentation.save("Presentation_with_externalWorkbook.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Parametr updateChartData metody setExternalWorkbook kontroluje, czy skoroszyt jest ładowany.
- Gdy
updateChartDatama wartośćfalse, aktualizowana jest tylko ścieżka do skoroszytu. Dane wykresu nie są ładowane ani aktualizowane z docelowego skoroszytu, więc skoroszyt może być niedostępny. - Gdy
updateChartDatama wartośćtrue, dane wykresu są aktualizowane z docelowego skoroszytu.
Poniższy przykład przypisuje adres URL zastępczy z ustawionym updateChartData na false. Zachowuje domyślne dane wykresu kołowego i zapisuje prezentację bez ładowania niedostępnego skoroszytu.
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.Pie, 50, 50, 400, 600, true);
chart.getChartData().setExternalWorkbook("https://example.com/unavailable-workbook.xlsx", false);
presentation.save("SetExternalWorkbookWithUpdateChartData.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Pobranie ścieżki zewnętrznego skoroszytu źródła danych wykresu
Aby zidentyfikować skoroszyt powiązany z wykresem, najpierw sprawdź, czy wykres używa zewnętrznego źródła danych. Jeśli tak, możesz odczytać ścieżkę skoroszytu, wykonując następujące kroki.
- Utwórz instancję klasy Presentation.
- Uzyskaj dostęp do pierwszego slajdu za pomocą indeksu zerowego.
- Sprawdź, czy pierwszy kształt jest wykresem.
- Odczytaj typ źródła danych wykresu.
- Jeśli źródłem jest zewnętrzny skoroszyt, odczytaj jego ścieżkę.
Przykład otwiera externalWorkbook.pptx, utworzony w poprzednim przykładzie, i analizuje pierwszy kształt na pierwszym slajdzie. Jeśli jest to wykres połączony z zewnętrznym skoroszytem, przykład wypisuje getExternalWorkbookPath na konsolę. Następnie zapisuje kopię prezentacji jako Result.pptx.
import com.aspose.slides.*;
Presentation presentation = new Presentation("externalWorkbook.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
if (slide.getShapes().size() > 0 && slide.getShapes().get_Item(0) instanceof IChart) {
IChart chart = (IChart) slide.getShapes().get_Item(0);
IChartData chartData = chart.getChartData();
if (chartData.getDataSourceType() == ChartDataSourceType.ExternalWorkbook) {
System.out.println(chartData.getExternalWorkbookPath());
} else {
System.out.println("The chart does not use an external workbook.");
}
} else {
System.out.println("The first shape is not a chart.");
}
presentation.save("Result.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Edycja danych wykresu
Możesz edytować dane w zewnętrznych skoroszytach tak samo, jak wprowadzane są zmiany w zawartości wewnętrznych skoroszytów. Gdy zewnętrzny skoroszyt nie może zostać załadowany, zostaje zgłoszony wyjątek.
Przykład wymaga presentation.pptx z wykresem jako pierwszym kształtem na pierwszym slajdzie oraz dostępnego zewnętrznego skoroszytu. Ustawia wartość opartą na komórce pierwszego punktu danych pierwszej serii na 100 i zapisuje prezentację jako presentation_out.pptx. Edytowanie wartości komórek może zaktualizować powiązany zewnętrzny plik XLSX, dlatego użyj kopii, jeśli musisz zachować oryginalny skoroszyt.
import com.aspose.slides.*;
Presentation presentation = new Presentation("presentation.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
int shapeCount = slide.getShapes().size();
if (shapeCount > 0 && slide.getShapes().get_Item(0) instanceof IChart) {
IChart chart = (IChart) slide.getShapes().get_Item(0);
IChartSeriesCollection series = chart.getChartData().getSeries();
if (series.size() > 0 && series.get_Item(0).getDataPoints().size() > 0) {
IChartDataCell valueCell = series.get_Item(0).getDataPoints().get_Item(0).getValue().getAsCell();
if (valueCell != null) {
valueCell.setValue(100);
presentation.save("presentation_out.pptx", SaveFormat.Pptx);
} else {
System.out.println("The first data point is not linked to a workbook cell.");
}
} else {
System.out.println("The chart has no data points to edit.");
}
} else {
System.out.println("The first shape is not a chart.");
}
} finally {
presentation.dispose();
}
Odzyskanie skoroszytu z pamięci podręcznej wykresu
Jeśli wykres używa zewnętrznego skoroszytu, który jest brakujący lub niedostępny, Aspose.Slides może odtworzyć skoroszyt wykresu z danych zapisanych w pamięci podręcznej prezentacji. Utwórz LoadOptions, wywołaj LoadOptions.setSpreadsheetOptions, i ustaw ISpreadsheetOptions.setRecoverWorkbookFromChartCache na true przed otwarciem prezentacji.
Poniższy przykład Java otwiera presentation.pptx, którego pierwszy kształt na pierwszym slajdzie musi być wykresem odwołującym się do niedostępnego zewnętrznego skoroszytu, i uzyskuje dostęp do odzyskanych danych poprzez IChart.getChartData oraz IChartData.getChartDataWorkbook:
import com.aspose.slides.*;
SpreadsheetOptions spreadsheetOptions = new SpreadsheetOptions();
spreadsheetOptions.setRecoverWorkbookFromChartCache(true);
LoadOptions loadOptions = new LoadOptions();
loadOptions.setSpreadsheetOptions(spreadsheetOptions);
Presentation presentation = new Presentation("presentation.pptx", loadOptions);
try {
ISlide slide = presentation.getSlides().get_Item(0);
int shapeCount = slide.getShapes().size();
if (shapeCount > 0 && slide.getShapes().get_Item(0) instanceof IChart) {
IChart chart = (IChart) slide.getShapes().get_Item(0);
IChartDataWorkbook recoveredWorkbook = chart.getChartData().getChartDataWorkbook();
// Odczytaj lub zmodyfikuj tutaj odzyskane dane skoroszytu.
} else {
System.out.println("The first shape is not a chart.");
}
} finally {
presentation.dispose();
}
Jeśli zewnętrzny skoroszyt jest niedostępny i odzyskiwanie jest wyłączone, Aspose.Slides zgłasza wyjątek. Włącz odzyskiwanie tylko wtedy, gdy użycie buforowanych danych wykresu jest akceptowalnym rozwiązaniem awaryjnym, ponieważ pamięć podręczna może nie zawierać zmian wprowadzonych w zewnętrznym skoroszycie po ostatniej aktualizacji prezentacji.
FAQ
Czy mogę określić, czy konkretny wykres jest powiązany z zewnętrznym czy osadzonym skoroszytem?
Tak. Wykres posiada typ źródła danych oraz ścieżkę do zewnętrznego skoroszytu; jeśli źródłem jest zewnętrzny skoroszyt, możesz odczytać pełną ścieżkę, aby upewnić się, że używany jest plik zewnętrzny.
Czy obsługiwane są względne ścieżki do zewnętrznych skoroszytów i jak są one przechowywane?
Tak. Jeśli podasz względną ścieżkę, zostaje ona automatycznie przekształcona na ścieżkę bezwzględną. Prezentacja zapisuje ścieżkę bezwzględną w pliku PPTX, więc przeniesienie skoroszytu może wymagać aktualizacji odnośnika.
Czy mogę używać skoroszytów znajdujących się na zasobach sieciowych/udziałach?
Tak, takie skoroszyty mogą być używane jako zewnętrzne źródło danych. Jednak edytowanie zdalnych skoroszytów bezpośrednio z Aspose.Slides nie jest obsługiwane – mogą być używane wyłącznie jako źródło.
Czy Aspose.Slides nadpisuje zewnętrzny plik XLSX przy zapisywaniu prezentacji?
Prezentacja przechowuje odnośnik do pliku zewnętrznego. Edytowanie danych wykresu powiązanych z komórkami może również zaktualizować powiązany lokalny plik XLSX. Użyj kopii skoroszytu, jeśli oryginał musi pozostać niezmieniony.
Co zrobić, gdy zewnętrzny plik jest zabezpieczony hasłem?
Aspose.Slides nie przyjmuje hasła podczas łączenia. Typowe podejście to usunięcie ochrony wcześniej lub przygotowanie odszyfrowanej kopii (np. przy użyciu Aspose.Cells) i połączenie z tą kopią.
Czy wiele wykresów może odwoływać się do tego samego zewnętrznego skoroszytu?
Tak. Każdy wykres przechowuje własny odnośnik. Jeśli wszystkie wskazują ten sam plik, aktualizacja tego pliku zostanie odzwierciedlona w każdym wykresie przy następnym wczytaniu danych.

