Ö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 öncechart.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.ShowValueve benzerleri) kullanarak serideki her etiket için aynı anda bir varsayılan ayarlayın. ClearFormat(), hemChartDataPointhem deChartDataLabelCollectionüzerinde mevcuttur — doğrudan biçimlendirmeyi, serinin varsayılan olarak devraldığı haline geri sıfırlar.- Alan değerlendirme motoru,
DATEveDOCPROPERTYgibi 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 tutucu0değ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
| Sorun | Sebep | Düzeltme |
|---|---|---|
Sayfa numaraları veya TOC girişleri 0 gösteriyor | Bu baskı sayfa-düzeni/renderleme motorunu içermiyor | Beklenen 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 olur | Render formatları bu sürümde yer almıyor | Bunun 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 olur | Yü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 / Özellik | Açıklama |
|---|---|
Document | Kök belge nesnesi; Save() DOCX, Markdown veya düz metne yazar |
DocumentBuilder | Yüksek seviyeli imleç API; InsertChart() bir grafik şekli ekler |
Shape | InsertChart() tarafından döndürülen çizim nesnesi; Chart özelliğini ortaya çıkarır |
Chart | Grafik nesnesi; Series, Legend, DataTable, AxisX, AxisY, Title |
ChartSeries / ChartSeriesCollection | Seri verileri (Add, Clear) ve seri bazında ayarlar |
ChartDataPoint / ChartDataPointCollection | Nokta başına biçimlendirme; ClearFormat() |
ChartMarker / MarkerSymbol | Veri noktası işaretleyici şekli ve boyutu |
ChartDataLabel / ChartDataLabelCollection | Etiket başına ve koleksiyon genelinde etiket görüntüleme ayarları |
ChartAxisTitle | Başlık metni Chart.AxisX / Chart.AxisY üzerinde gösterilir |
ChartLegend / ChartLegendEntry | Grafik açıklaması ve seriye özgü girişler |
ChartDataTable | Grafiğin altında gösterilen veri tablosu |
Font / Fill | Grafik metin öğelerinde metin biçimlendirme ve doldurma (düz renk, degrade) |