Tùy chỉnh bảng dữ liệu biểu đồ trong các bản trình chiếu bằng C++
Overview
Aspose.Slides cho C++ cho phép bạn hiển thị bảng dữ liệu của biểu đồ và tùy chỉnh định dạng văn bản, đường viền và các ký hiệu chú giải. Bài viết này giải thích cách bật bảng, định dạng văn bản, kiểm soát từng loại đường viền và hiển thị hoặc ẩn các ký hiệu chú giải. Các ví dụ lưu biểu đồ đã cấu hình dưới dạng tệp PPTX.
Set Font Properties
Để hiển thị bảng dữ liệu của biểu đồ, truyền true vào IChart::set_HasDataTable. Sử dụng IChart::get_ChartDataTable để truy cập bảng và cấu hình định dạng văn bản của nó.
- Tải bản trình chiếu bằng lớp Presentation.
- Thêm một biểu đồ cột nhóm vào slide đầu tiên.
- Bật bảng dữ liệu của biểu đồ.
- Bật chữ đậm với IBasePortionFormat::set_FontBold và truyền
20vào IBasePortionFormat::set_FontHeight để có văn bản 20 điểm. - Lưu bản trình chiếu đã chỉnh sửa.
Ví dụ sau yêu cầu có tệp test.pptx trong thư mục làm việc với ít nhất một slide. Nó thêm một biểu đồ với dữ liệu mặc định tại vị trí (50, 50), có độ rộng 600 điểm và chiều cao 400 điểm. Tệp output.pptx đã lưu chứa biểu đồ với bảng dữ liệu được bật và các thiết lập phông chữ đã chỉ định được áp dụng.
#include <DOM/Chart/ChartType.h>
#include <DOM/Chart/IChartPortionFormat.h>
#include <DOM/Chart/IChartTextFormat.h>
#include <DOM/Chart/IDataTable.h>
#include <DOM/IChart.h>
#include <DOM/IShapeCollection.h>
#include <DOM/ISlide.h>
#include <DOM/NullableBool.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Charts;
using namespace Aspose::Slides::Export;
auto presentation = System::MakeObject<Presentation>(u"test.pptx");
auto slide = presentation->get_Slide(0);
auto chart = slide->get_Shapes()->AddChart(ChartType::ClusteredColumn, 50.0f, 50.0f, 600.0f, 400.0f);
chart->set_HasDataTable(true);
auto portionFormat = chart->get_ChartDataTable()->get_TextFormat()->get_PortionFormat();
portionFormat->set_FontBold(NullableBool::True);
portionFormat->set_FontHeight(20.0f);
presentation->Save(u"output.pptx", SaveFormat::Pptx);
Customize Data Table Borders
Bật bảng bằng IChart::set_HasDataTable và truy cập nó qua IChart::get_ChartDataTable. Bạn có thể điều khiển ba loại đường viền một cách độc lập:
- IDataTable::set_HasBorderHorizontal kiểm soát đường viền ngang của ô.
- IDataTable::set_HasBorderVertical kiểm soát đường viền dọc của ô.
- IDataTable::set_HasBorderOutline kiểm soát đường viền bao ngoài của bảng.
Truyền true vào mỗi setter để hiển thị đường viền tương ứng hoặc false để ẩn chúng. Ví dụ sau tạo một biểu đồ cột nhóm với dữ liệu mặc định, hiển thị đường viền ngang và đường viền bao ngoài, và ẩn đường viền dọc. Nó không yêu cầu tệp đầu vào. Vị trí và kích thước của biểu đồ được chỉ định bằng điểm.
#include <DOM/Chart/ChartType.h>
#include <DOM/Chart/IChartPortionFormat.h>
#include <DOM/Chart/IChartTextFormat.h>
#include <DOM/Chart/IDataTable.h>
#include <DOM/IChart.h>
#include <DOM/IShapeCollection.h>
#include <DOM/ISlide.h>
#include <DOM/NullableBool.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Charts;
using namespace Aspose::Slides::Export;
auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
auto chart = slide->get_Shapes()->AddChart(ChartType::ClusteredColumn, 50.0f, 50.0f, 600.0f, 400.0f);
chart->set_HasDataTable(true);
auto dataTable = chart->get_ChartDataTable();
dataTable->set_HasBorderHorizontal(true);
dataTable->set_HasBorderVertical(false);
dataTable->set_HasBorderOutline(true);
presentation->Save(u"data-table-borders.pptx", SaveFormat::Pptx);
So sánh dưới đây sử dụng cùng một dữ liệu biểu đồ và thiết lập ký hiệu chú giải trong bốn trường hợp. Bắt đầu với tất cả các đường viền được bật, mỗi biến thể còn lại chỉ tắt một thiết lập đường viền. Biến thể ở góc trái dưới khớp với các thiết lập đường viền trong ví dụ.

Show or Hide Legend Keys
Các ký hiệu chú giải là các dấu màu nhỏ bên cạnh tên chuỗi trong bảng dữ liệu. Chúng giúp người đọc ghép mỗi hàng bảng với một chuỗi biểu đồ. Truyền true vào IDataTable::set_ShowLegendKey để hiển thị các ký hiệu này hoặc false để ẩn chúng.
Chú giải riêng của biểu đồ được điều khiển bởi IChart::set_HasLegend. Các thiết lập này độc lập: ẩn chú giải riêng sẽ không ẩn các ký hiệu trong bảng dữ liệu, và ẩn các ký hiệu trong bảng sẽ không ẩn chú giải riêng.
Ví dụ sau tạo một biểu đồ với dữ liệu mặc định, bật bảng dữ liệu và hiển thị các ký hiệu chú giải bên trong bảng trong khi ẩn chú giải riêng. Tất cả các đường viền của bảng đều được bật rõ ràng. Không cần bản trình chiếu đầu vào. Để chỉ ẩn các ký hiệu của bảng, truyền false vào IDataTable::set_ShowLegendKey.
#include <DOM/Chart/ChartType.h>
#include <DOM/Chart/IChartPortionFormat.h>
#include <DOM/Chart/IChartTextFormat.h>
#include <DOM/Chart/IDataTable.h>
#include <DOM/IChart.h>
#include <DOM/IShapeCollection.h>
#include <DOM/ISlide.h>
#include <DOM/NullableBool.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Charts;
using namespace Aspose::Slides::Export;
auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
auto chart = slide->get_Shapes()->AddChart(ChartType::ClusteredColumn, 50.0f, 50.0f, 600.0f, 400.0f);
chart->set_HasDataTable(true);
chart->set_HasLegend(false);
auto dataTable = chart->get_ChartDataTable();
dataTable->set_HasBorderHorizontal(true);
dataTable->set_HasBorderVertical(true);
dataTable->set_HasBorderOutline(true);
dataTable->set_ShowLegendKey(true);
presentation->Save(u"data-table-legend-keys.pptx", SaveFormat::Pptx);
So sánh dưới đây hiển thị cùng một bảng với các ký hiệu chú giải được bật và tắt. Tất cả các đường viền vẫn được bật, và chú giải riêng của biểu đồ được ẩn trong cả hai trường hợp.

FAQ
Can I show legend keys in a chart’s data table?
Có. Truyền true vào IDataTable::set_ShowLegendKey để hiển thị các ký hiệu chú giải hoặc false để ẩn chúng.
Will the data table be preserved when exporting the presentation to PDF, HTML, or images?
Có. Aspose.Slides sẽ render biểu đồ và bảng dữ liệu đã hiển thị như một phần của slide khi xuất sang PDF, HTML hoặc images.
Can I work with data tables in charts loaded from a template?
Có. Đối với biểu đồ được tải từ một bản trình chiếu hoặc mẫu hiện có, sử dụng IChart::get_HasDataTable để kiểm tra bảng dữ liệu có được hiển thị hay không và IChart::set_HasDataTable để thay đổi trạng thái hiển thị.
How can I find charts that have a data table enabled?
Duyệt qua các shape trên mỗi slide, xác định các biểu đồ và kiểm tra kết quả của IChart::get_HasDataTable. Giá trị true cho biết bảng dữ liệu của biểu đồ đã được bật.