Fitur dan Fungsionalitas
Fitur dan Fungsionalitas
Halaman ini mencakup kemampuan pembuatan bagan dari Aspose.Words FOSS untuk .NET dengan contoh C# yang berfungsi, dibangun di sekitar DocumentBuilder.InsertChart() dan Chart model objek. Model objek dokumen lengkap perpustakaan (paragraf, tabel, gaya, penanda, bagian) dijelaskan pada ikhtisar produk dan di Quickstart panduan.
Membuat Dokumen dengan Bagan
Masukkan bentuk bagan dengan DocumentBuilder.InsertChart(), kemudian akses objek Chart-nya melalui Shape yang dikembalikan. Hapus seri default yang dihasilkan sebelum menambahkan data sebenarnya:
using Aspose.Words;
using Aspose.Words.Drawing.Charts;
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;
// Delete default generated series.
chart.Series.Clear();
string[] categories = new string[] { "AW Category 1", "AW Category 2", "AW Category 3" };
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });
doc.Save("chart.docx");Seri Bagan, Titik Data, dan Penanda
Chart.Series adalah ChartSeriesCollection. Setiap ChartSeries menampilkan titik data individunya melalui DataPoints, yang memungkinkan Anda menyesuaikan penanda atau pemformatan satu titik tanpa memengaruhi seri lainnya:
Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;
chart.Series.Clear();
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });
ChartSeries series = chart.Series[0];
ChartDataPointCollection points = series.DataPoints;
ChartDataPoint point1 = points[0];
ChartDataPoint point2 = points[1];
point1.InvertIfNegative = true;
point1.Marker.Symbol = MarkerSymbol.Square;
point2.InvertIfNegative = true;
point2.Marker.Symbol = MarkerSymbol.Diamond;
// Reset a single data point back to the series' inherited default formatting.
point1.ClearFormat();Label Data Bagan
ChartSeries.DataLabels adalah ChartDataLabelCollection yang mengontrol label untuk setiap titik dalam seri sekaligus. Akses dengan DataLabels[i] untuk mengganti ChartDataLabel individu:
Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;
chart.Series.Clear();
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });
ChartSeries series = chart.Series[0];
series.HasDataLabels = true;
series.DataLabels.ShowValue = true;
ChartDataLabel label = series.DataLabels[1];
label.ShowCategoryName = true;
label.Position = ChartDataLabelPosition.Below;Judul Sumbu Diagram
Chart.AxisX dan Chart.AxisY masing-masing mengekspos ChartAxisTitle melalui properti Title mereka:
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.InsertChart(ChartType.Column, 432, 252);
Chart chart = shape.Chart;
ChartAxisTitle xTitle = chart.AxisX.Title;
ChartAxisTitle yTitle = chart.AxisY.Title;
xTitle.Show = true;
xTitle.Text = "Categories";
yTitle.Show = true;
yTitle.Text = "Values";Legenda Diagram dan Font
Chart.Legend mengekspos LegendEntries, satu ChartLegendEntry per seri, masing-masing dengan Fontnya sendiri. Font menerapkan pemformatan isi, sehingga Font.Fill.Solid() menetapkan warna teks solid dengan cara yang sama seperti pada run terformat lainnya:
using System.Drawing;
Shape shape = builder.InsertChart(ChartType.Column, 432, 252);
ChartLegend legend = shape.Chart.Legend;
Font font1 = legend.LegendEntries[0].Font;
Font font2 = legend.LegendEntries[1].Font;
font1.Fill.Solid(Color.Blue);
font2.Color = Color.Green;Tabel Data Diagram
Chart.DataTable adalah ChartDataTable yang menampilkan nilai seri dasar di bawah diagram. Properti Has*Border dan HasLegendKeys mengontrol bagian mana yang terlihat:
Shape shape = builder.InsertChart(ChartType.Column, 432, 252);
ChartDataTable dataTable = shape.Chart.DataTable;
dataTable.HasLegendKeys = false;
dataTable.HasHorizontalBorder = true;
dataTable.HasVerticalBorder = true;
dataTable.HasOutlineBorder = false;
doc.Save("chart-report.docx");Tips dan Praktik Terbaik
DocumentBuilder.InsertChart()mengisi bagan baru dengan seri yang dihasilkan secara default — panggilchart.Series.Clear()sebelum menambahkan data Anda sendiri, atau nilai default akan tetap bersamanya.- Gunakan
ChartSeries.DataLabels[i]untuk menargetkan satu label data ketika hanya beberapa titik yang memerlukan pemformatan khusus; gunakan properti tingkat koleksi (DataLabels.ShowValue, dan serupa) untuk menetapkan nilai default bagi setiap label dalam seri sekaligus. ClearFormat()tersedia padaChartDataPointmaupunChartDataLabelCollection— ia mengatur ulang pemformatan langsung kembali ke apa yang diwarisi seri secara default.- Mesin evaluasi bidang memperbarui bidang konten seperti
DATEdanDOCPROPERTYsecara programatis, tetapi bidang yang bergantung pada tata letak halaman (nomor halaman dalam TOC,NUMPAGES) dievaluasi menjadi nilai placeholder0karena edisi ini tidak menyertakan mesin tata letak. - Lihat Panduan Instalasi untuk menambahkan paket melalui NuGet, atau membangun dari sumber, sebelum merujuk ke API ini.
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
Nomor halaman atau entri TOC menampilkan 0 | Edisi ini tidak menyertakan mesin tata letak/penyajian halaman | Perilaku yang diharapkan — nilai bidang yang tergantung pada tata letak tidak dihitung; gunakan versi komersial Aspose.Words untuk .NET jika Anda membutuhkannya |
Document.Save() ke .pdf, .xps, atau ekstensi gambar gagal | Format rendering tidak termasuk dalam edisi ini | Simpan ke DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown, atau teks biasa saja |
Memuat file .doc, .rtf, .odt, .html, atau .epub gagal | Hanya DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown, dan teks biasa yang didukung untuk memuat/menyimpan | Konversikan file sumber ke DOCX terlebih dahulu, atau gunakan edisi komersial |
| Seri diagram default masih muncul setelah menambahkan data khusus | chart.Series.Clear() tidak dipanggil setelah InsertChart() | Bersihkan seri yang dihasilkan secara default sebelum memanggil chart.Series.Add() |
FAQ
Mengapa nomor halaman dalam daftar isi saya muncul sebagai 0?
Edisi FOSS ini tidak menyertakan subsistem tata letak halaman dan rendering, sehingga nilai bidang apa pun yang bergantung pada tata letak halaman — termasuk nomor halaman — dievaluasi menjadi placeholder 0 alih-alih nilai yang dihitung.
Apakah saya dapat mengekspor dokumen ke PDF atau format gambar?
Tidak dalam edisi ini. Ekspor PDF, XPS, dan gambar bergantung pada subsistem rendering yang sama yang dihapus untuk menjaga edisi ini gratis. Gunakan Aspose.Words komersial untuk .NET untuk keluaran tersebut.
Apakah saya dapat membuat tanda tangan digital baru pada dokumen?
Tidak — edisi ini dapat memverifikasi tanda tangan digital yang ada tetapi tidak dapat membuat yang baru.
Jenis diagram apa yang didukung oleh InsertChart()?
InsertChart() mengambil nilai ChartType — enum mencakup keluarga diagram standar seperti line, column, bar, pie, area, doughnut, radar, scatter, stock, dan surface charts, termasuk varian stacked dan 3D mereka.
API Reference Ringkasan
| Kelas / Properti | Deskripsi |
|---|---|
Document | Objek dokumen root; Save() menulis ke DOCX, Markdown, atau teks biasa |
DocumentBuilder | Kursor tingkat tinggi API; InsertChart() menambahkan bentuk diagram |
Shape | Objek gambar yang dikembalikan oleh InsertChart(); mengekspos properti Chart |
Chart | Objek diagram; Series, Legend, DataTable, AxisX, AxisY, Title |
ChartSeries / ChartSeriesCollection | Data seri (Add, Clear) dan pengaturan per-seri |
ChartDataPoint / ChartDataPointCollection | Pemformatan per-titik; ClearFormat() |
ChartMarker / MarkerSymbol | Bentuk dan ukuran penanda titik data |
ChartDataLabel / ChartDataLabelCollection | Pengaturan tampilan label per-label dan koleksi secara keseluruhan |
ChartAxisTitle | Teks judul yang ditampilkan pada Chart.AxisX / Chart.AxisY |
ChartLegend / ChartLegendEntry | Legenda diagram dan entri per-serinya |
ChartDataTable | Tabel data ditampilkan di bawah grafik |
Font / Fill | Pemformatan teks dan isian (warna solid, gradien) pada elemen teks grafik |