Özellikler ve İşlevsellikler

Özellikler ve İşlevsellikler

Özellikler ve İşlevsellikler

Bu sayfa, grafik oluşturma yeteneklerini kapsar Aspose.Words FOSS için .NET çalışan C# örnekleriyle, etrafında oluşturulmuş DocumentBuilder.InsertChart() ve Chart nesne modeli. Kitaplığın tam belge nesne modeli (paragraflar, tablolar, stiller, yer imleri, bölümler) ürün genel bakışında ve Quickstart kılavuzda.


Grafikli Bir Belge Oluşturma

DocumentBuilder.InsertChart() ile bir grafik şekli ekleyin, ardından döndürülen Shape aracılığıyla Chart nesnesine erişin. Gerçek veri eklemeden önce varsayılan oluşturulan seriyi temizleyin:

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");

Grafik Serileri, Veri Noktaları ve İşaretçiler

Chart.Series, bir ChartSeriesCollection‘dır. Her ChartSeries, bireysel veri noktalarını DataPoints aracılığıyla ortaya çıkarır; bu, serinin geri kalanını etkilemeden tek bir noktanın işaretçisini veya biçimlendirmesini özelleştirmenizi sağlar:

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();

Grafik Veri Etiketleri

ChartSeries.DataLabels, serideki her nokta için etiketleri bir kerede kontrol eden bir ChartDataLabelCollectiondir. Bireysel bir ChartDataLabel öğesini geçersiz kılmak için DataLabels[i] ile indeksleyin:

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;

Grafik Eksen Başlıkları

Chart.AxisX ve Chart.AxisY, her biri Title özelliği aracılığıyla bir ChartAxisTitle sunar:

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";

Grafik Açıklaması ve Yazı Tipleri

Chart.Legend, LegendEntries‘ı ortaya koyar, seriye göre bir ChartLegendEntry, her biri kendi Font‘ine sahiptir. Font, dolgu biçimlendirmesini uygular, bu yüzden Font.Fill.Solid(), diğer biçimlendirilmiş koşullarda olduğu gibi katı bir metin rengi ayarlar:

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;

Grafik Veri Tablosu

Chart.DataTable, grafiğin altında temel seri değerlerini gösteren bir ChartDataTable‘dir. Has*Border ve HasLegendKeys özellikleri, hangi bölümlerin görünür olduğunu kontrol eder:

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");

İpuçları ve En İyi Uygulamalar

  • DocumentBuilder.InsertChart(), yeni grafiği varsayılan oluşturulan serilerle doldurur — kendi verilerinizi eklemeden önce chart.Series.Clear() çağırın, aksi takdirde varsayılanlar onunla birlikte kalır.
  • Yalnızca birkaç noktanın özel biçimlendirme gerektirdiği durumlarda tek bir veri etiketini hedeflemek için ChartSeries.DataLabels[i] kullanın; koleksiyon düzeyindeki özellikleri (DataLabels.ShowValue ve benzerleri) kullanarak serideki her etiket için aynı anda bir varsayılan ayarlayın.
  • ClearFormat(), hem ChartDataPoint hem de ChartDataLabelCollection üzerinde mevcuttur — doğrudan biçimlendirmeyi, serinin varsayılan olarak devraldığı haline geri sıfırlar.
  • Alan değerlendirme motoru, DATE ve DOCPROPERTY gibi içerik alanlarını programlı olarak günceller, ancak sayfa düzenine bağlı alanlar (TOC’taki sayfa numaraları, NUMPAGES) bu sürümde düzen motoru bulunmadığından yer tutucu 0 değerlerine değerlendirilir.
  • Bkz. Kurulum Kılavuzu paketi NuGet aracılığıyla eklemek veya kaynaktan derlemek, bu API’lere başvurmadan önce.

Yaygın Sorunlar

SorunSebepDüzeltme
Sayfa numaraları veya TOC girişleri 0 gösteriyorBu baskı sayfa-düzeni/renderleme motorunu içermiyorBeklenen davranış — düzen bağımlı alan değerleri hesaplanmaz; ticari sürümü kullanın Aspose.Words için .NET eğer ihtiyaç duyarsanız
Document.Save() to .pdf, .xps, veya bir görüntü uzantısı başarısız olurRender formatları bu sürümde yer almıyorBunun yerine DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown veya düz metin olarak kaydedin
Bir .doc, .rtf, .odt, .html veya .epub dosyasının yüklenmesi başarısız olurYükleme/kaydetme için yalnızca DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown ve düz metin desteklenir.Kaynak dosyayı önce DOCX formatına dönüştürün veya ticari sürümü kullanın.
Özel veri eklendikten sonra bile varsayılan grafik serisi görünmeye devam ediyor.chart.Series.Clear() , InsertChart() sonrasında çağrılmadıchart.Series.Add() çağırmadan önce varsayılan üretilen seriyi temizleyin

FAQ

Neden içindekiler tablomdaki sayfa numaraları 0 olarak çıkıyor?

Bu FOSS sürümü sayfa-düzeni ve renderleme alt sistemini içermez, bu yüzden sayfa düzenine bağlı herhangi bir alan değeri — sayfa numaraları dahil — hesaplanmış bir değer yerine 0 yer tutucusuna değerlendirilir.

Bir belgeyi PDF ya da bir görüntü formatına aktarabilir miyim?

Bu sürümde yok. PDF, XPS ve görüntü dışa aktarma, bu sürümü ücretsiz tutmak için kaldırılan aynı renderleme alt sistemine bağlıdır. Bu çıktılar için .NET amaçlı ticari Aspose.Words kullanın.

Bir belgede yeni bir dijital imza oluşturabilir miyim?

Hayır — bu sürüm mevcut dijital imzaları doğrulayabilir ancak yenilerini oluşturamaz.

InsertChart() hangi grafik türlerini destekliyor?

InsertChart(), bir ChartType değeri alır — bu enum, çizgi, sütun, çubuk, pasta, alan, halka, radar, dağılım, hisse ve yüzey grafikler gibi standart grafik ailelerini, yığılmış ve 3D varyantları dahil olmak üzere kapsar.

API Reference Özeti

Sınıf / ÖzellikAçıklama
DocumentKök belge nesnesi; Save() DOCX, Markdown veya düz metne yazar
DocumentBuilderYüksek seviyeli imleç API; InsertChart() bir grafik şekli ekler
ShapeInsertChart() tarafından döndürülen çizim nesnesi; Chart özelliğini ortaya çıkarır
ChartGrafik nesnesi; Series, Legend, DataTable, AxisX, AxisY, Title
ChartSeries / ChartSeriesCollectionSeri verileri (Add, Clear) ve seri bazında ayarlar
ChartDataPoint / ChartDataPointCollectionNokta başına biçimlendirme; ClearFormat()
ChartMarker / MarkerSymbolVeri noktası işaretleyici şekli ve boyutu
ChartDataLabel / ChartDataLabelCollectionEtiket başına ve koleksiyon genelinde etiket görüntüleme ayarları
ChartAxisTitleBaşlık metni Chart.AxisX / Chart.AxisY üzerinde gösterilir
ChartLegend / ChartLegendEntryGrafik açıklaması ve seriye özgü girişler
ChartDataTableGrafiğin altında gösterilen veri tablosu
Font / FillGrafik metin öğelerinde metin biçimlendirme ve doldurma (düz renk, degrade)

Ayrıca Bakınız

 Türkçe