Fitur dan Fungsionalitas

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 — panggil chart.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 pada ChartDataPoint maupun ChartDataLabelCollection — ia mengatur ulang pemformatan langsung kembali ke apa yang diwarisi seri secara default.
  • Mesin evaluasi bidang memperbarui bidang konten seperti DATE dan DOCPROPERTY secara programatis, tetapi bidang yang bergantung pada tata letak halaman (nomor halaman dalam TOC, NUMPAGES) dievaluasi menjadi nilai placeholder 0 karena 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

MasalahPenyebabPerbaikan
Nomor halaman atau entri TOC menampilkan 0Edisi ini tidak menyertakan mesin tata letak/penyajian halamanPerilaku 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 gagalFormat rendering tidak termasuk dalam edisi iniSimpan ke DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown, atau teks biasa saja
Memuat file .doc, .rtf, .odt, .html, atau .epub gagalHanya DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown, dan teks biasa yang didukung untuk memuat/menyimpanKonversikan file sumber ke DOCX terlebih dahulu, atau gunakan edisi komersial
Seri diagram default masih muncul setelah menambahkan data khususchart.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 / PropertiDeskripsi
DocumentObjek dokumen root; Save() menulis ke DOCX, Markdown, atau teks biasa
DocumentBuilderKursor tingkat tinggi API; InsertChart() menambahkan bentuk diagram
ShapeObjek gambar yang dikembalikan oleh InsertChart(); mengekspos properti Chart
ChartObjek diagram; Series, Legend, DataTable, AxisX, AxisY, Title
ChartSeries / ChartSeriesCollectionData seri (Add, Clear) dan pengaturan per-seri
ChartDataPoint / ChartDataPointCollectionPemformatan per-titik; ClearFormat()
ChartMarker / MarkerSymbolBentuk dan ukuran penanda titik data
ChartDataLabel / ChartDataLabelCollectionPengaturan tampilan label per-label dan koleksi secara keseluruhan
ChartAxisTitleTeks judul yang ditampilkan pada Chart.AxisX / Chart.AxisY
ChartLegend / ChartLegendEntryLegenda diagram dan entri per-serinya
ChartDataTableTabel data ditampilkan di bawah grafik
Font / FillPemformatan teks dan isian (warna solid, gradien) pada elemen teks grafik

Lihat Juga

 Bahasa Indonesia