درج دادههای بصری بهصورت مستقیم در فایلهای Word میتواند گزارشهای ثابت را به ارائههای جذاب تبدیل کند. Conholdate.Total for Java یک SDK قدرتمند فراهم میکند که ایجاد و درج نمودارها در اسناد DOCX را ساده میسازد. در این راهنما ما شما را از طریق یک مثال کامل و قابل کامپایل راهنمایی میکنیم که نشان میدهد چگونه نمودارها را در اسناد Word با استفاده از Java ایجاد کنید، نمودار را پیکربندی کنید و نتیجه را ذخیره کنید. در پایان میتوانید تولید خودکار اسناد را با نمودارهای پویا برای هر سناریوی گزارشگیری تجاری انجام دهید.
مثال کامل کارآمد برای جاسازی نمودارها در اسناد Word با استفاده از Java
این مثال نشان میدهد که چگونه یک نمودار ستونی با پنج سری داده ایجاد کرده و آن را در یک سند Word درج کنید.
import com.aspose.words.Document;
import com.aspose.words.DocumentBuilder;
import com.aspose.words.Shape;
import com.aspose.words.ChartType;
import com.aspose.words.Chart;
import com.aspose.words.ChartSeriesCollection;
public class CreateChartInWord {
public static void main(String[] args) {
// Create a document
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Add chart with default data. You can specify different chart types and sizes.
Shape shape = builder.insertChart(ChartType.COLUMN, 432, 252);
// Chart property of Shape contains all chart related options.
Chart chart = shape.getChart();
// Get chart series collection.
ChartSeriesCollection seriesColl = chart.getSeries();
// Check series count.
System.out.println(seriesColl.getCount());
// Delete default generated series.
seriesColl.clear();
// Create category names array, in this example we have two categories.
String[] categories = new String[] { "AW Category 1", "AW Category 2" };
// Adding new series. Please note, data arrays must not be empty and arrays must be the same size.
seriesColl.add("AW Series 1", categories, new double[] { 1, 2 });
seriesColl.add("AW Series 2", categories, new double[] { 3, 4 });
seriesColl.add("AW Series 3", categories, new double[] { 5, 6 });
seriesColl.add("AW Series 4", categories, new double[] { 7, 8 });
seriesColl.add("AW Series 5", categories, new double[] { 9, 10 });
// Save the document
doc.save("ColumnsChart.docx");
}
}
نکته: این مثال کد عملکرد اصلی را نشان میدهد. قبل از استفاده در پروژه خود، اطمینان حاصل کنید مسیر خروجی (
ColumnsChart.docx) به یک دایرکتوری قابل نوشتن اشاره دارد، بررسی کنید تمام وابستگیهای مورد نیاز بهدرستی نصب شدهاند، و بهطور کامل در محیط توسعه خود تست کنید. اگر با مشکلی مواجه شدید، لطفاً به مستندات رسمی مراجعه کنید یا برای دریافت کمک به تیم پشتیبانی مراجعه نمایید.
نحوه کار ایجاد نمودارها در اسناد Word با استفاده از Java
گردش کار میتواند به پنج گام واضح تقسیم شود:
ایجاد یک Document و DocumentBuilder - کلاس
Documentنمایانگر فایل Word در حافظه است وDocumentBuilderیک API روان برای درج محتوا، از جمله نمودارها، به شما میدهد.Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc);درج یک شکل نمودار -
insertChartیکChartType(مثلاًCOLUMN) به همراه عرض و ارتفاع بر حسب نقطه میگیرد و یکShapeبرمیگرداند که نمودار را در صفحه میزبانی میکند.Shape shape = builder.insertChart(ChartType.COLUMN, 432, 252);دسترسی به شیء Chart - ویژگی
ChartازShapeتمام گزینههای مرتبط با نمودار را در اختیار میگذارد، از جمله مجموعه سریهای آن.
Chart chart = shape.getChart();
ChartSeriesCollection seriesColl = chart.getSeries();
System.out.println(seriesColl.getCount());
برای جزئیات کامل درباره Chart، ChartSeriesCollection و enumهای مرتبط، به مرجع API مراجعه کنید.
- پاک کردن سریهای پیشفرض و افزودن سریهای خود - یک نمودار تازه وارد شده قبلاً شامل سریهای جایگزین است، بنابراین
clear()آنها را قبل از افزودن دستهها و دادهها باadd()حذف میکند. آرایههای دستهبندی و مقدار که به همان فراخوانیadd()پاس داده میشوند باید طول یکسانی داشته باشند.
seriesColl.clear();
String[] categories = new String[] { "AW Category 1", "AW Category 2" };
seriesColl.add("AW Series 1", categories, new double[] { 1, 2 });
seriesColl.add("AW Series 2", categories, new double[] { 3, 4 });
- ذخیره سند - در نهایت،
doc.save()فایل DOCX را روی دیسک مینویسد.doc.save("ColumnsChart.docx");
درک هر یک از این مراحل، سازگاری مثال را برای انواع نمودارهای مختلف، منابع داده یا قالبهای سند آسان میکند.
آمادهسازی محیط
مخزن Maven Conholdate و وابستگی SDK را به فایل pom.xml خود اضافه کنید:
<repositories>
<repository>
<id>conholdate-repo</id>
<name>Conholdate Maven Repository</name>
<url>https://repository.conholdate.com/repo/</url>
</repository>
</repositories>
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.9</version>
<type>pom</type>
</dependency>
آخرین بسته SDK را از صفحه دانلود دریافت کنید. این کتابخانه به Java 8 یا بالاتر نیاز دارد و بر روی هر JVM استانداردی اجرا میشود. هیچ مؤلفه سرور اضافیای مورد نیاز نیست.
تنظیم دقیق تولید نمودار
میتوانید چندین ویژگی را تنظیم کنید تا با سبک بصری شما مطابقت داشته باشد:
Chart Type - مقدار
ChartType.COLUMNرا بهChartType.BAR،ChartType.LINE،ChartType.PIE،ChartType.SCATTERو سایر انواع پشتیبانیشده تغییر دهید.Shape shape = builder.insertChart(ChartType.BAR, 432, 252);اندازه نمودار - دومین و سومین آرگومان به
insertChartعرض و ارتفاع شکل نمودار را بر حسب پوینت کنترل میکنند.
Shape shape = builder.insertChart(ChartType.COLUMN, 500, 300);
دستهها (برچسبهای محور) - یک
String[]از نامهای دسته ایجاد کنید و آن را در تمام سریهایی که دستههای یکسان دارند، مجدداً استفاده کنید.String[] categories = new String[] { "Jan", "Feb", "Mar" };Data Series - فراخوانی
seriesColl.add()با نام سری، آرایه دستهها، و یکdouble[]از مقادیر برای افزودن به تعداد دلخواه سریهای مقایسهای.seriesColl.add("2021", categories, new double[] { 200, 220, 250 });
این گزینهها به شما امکان میدهند نمودار را برای هر نیاز گزارشگیری تنظیم کنید در حالی که کد را مختصر نگه میدارند.
درج یک نمودار پراکندگی در یک سند Word با استفاده از Java
نمودارهای پراکنده جفتهای مقادیر عددی X و Y را به جای دستهها ترسیم میکنند، که این باعث میشود برای تجسم همبستگیها یا توزیعها مفید باشند. ChartSeriesCollection یک overload از add() را بهطور خاص برای این منظور ارائه میدهد: بهجای آرایه دستهها، دو آرایه double[] میفرستید، یکی برای مقادیر X و دیگری برای مقادیر Y.
import com.aspose.words.Document;
import com.aspose.words.DocumentBuilder;
import com.aspose.words.Shape;
import com.aspose.words.ChartType;
import com.aspose.words.Chart;
public class InsertScatterChart {
public static void main(String[] args) {
// Create a new document
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Insert Scatter chart.
Shape shape = builder.insertChart(ChartType.SCATTER, 432, 252);
Chart chart = shape.getChart();
// Use this overload to add series to any type of Scatter charts.
chart.getSeries().add("AW Series 1", new double[] { 0.7, 1.8, 2.6 }, new double[] { 2.7, 3.2, 0.8 });
// Save the document
doc.save("ScatterChart.docx");
}
}
کل جریان مشابه مثال نمودار ستونی است: یک Document و DocumentBuilder ایجاد کنید، شکل نمودار را با ChartType.SCATTER وارد کنید، Chart را از شکل دریافت کنید و یک یا چند سری اضافه کنید. از آنجا که نمودارهای پراکنده جفتهای مختصات X/Y را ترسیم میکنند، آرایهٔ جداگانهٔ دستهها وجود ندارد — هر نقطه با ورودیهای متناظر در آرایههای مقادیر X و Y تعریف میشود. پس از افزودن تمام سریها، با doc.save() ذخیره کنید.
نتیجهگیری
جاسازی دادههای بصری بهصورت مستقیم در فایلهای DOCX روشی قدرتمند برای ارتقاء گزارشهای خودکار است. با Conholdate.Total for Java میتوانید نمودارها را در اسناد Word با استفاده از Java و تنها چند خط کد ایجاد کنید — شامل نمودارهای ستونی، میلهای، خطی، دایرهای و پراکنده — دستهها و سریها را سفارشی کنید و اسنادی با ظاهر حرفهای در سمت سرور تولید کنید. بهخاطر داشته باشید برای استفاده در محیط تولید یک لایسنس مناسب دریافت کنید؛ یک لایسنس موقت در صفحه لایسنس موقت موجود است و جزئیات کامل قیمتگذاری را میتوانید در صفحه قیمتگذاری بررسی کنید. همین امروز شروع به ادغام تولید نمودار کنید و به کاربران خود اسنادی مبتنی بر داده ارائه دهید که برجسته باشند.
سوالات متداول
چگونه میتوانم نمودارها را در اسناد Word با استفاده از Java و Conholdate.Total ایجاد کنم؟ متد
insertChartرا بر روی یکDocumentBuilderباChartTypeمورد نظر فراخوانی کنید،Chartرا ازShapeبازگردانده شده دریافت کنید، سری پیشفرض را پاک کنید و دستهها و دادههای خود را باseriesColl.add()اضافه کنید، سپس سند را ذخیره کنید. کد کامل در مثال بالا نشان داده شده است.چه انواع نمودارهایی پشتیبانی میشوند؟ SDK از انواع نمودار ستون، میلهای، خطی، دایرهای، پراکنده و بسیاری از انواع استاندارد دیگر از طریق enum
ChartTypeپشتیبانی میکند. مقدار enum که بهinsertChartپاس داده میشود را تغییر دهید تا نوع را عوض کنید.نمودار پراکنده چگونه با نمودار ستونی یا میلهای متفاوت است؟ یک نمودار پراکنده جفتهای عددی X و Y را به جای دستههای نامدار ترسیم میکند، بنابراین شما از overload
add(name, xValues, yValues)درChartSeriesCollectionاستفاده میکنید نه اینکه آرایهای از دستهها را پاس کنید.آیا برای تولید نمودار نیاز به تنظیم مجوز دارم؟ بله. میتوانید یک مجوز موقت را از صفحه مجوز موقت دریافت کنید. برای پروژههای طولانیمدت، یک مجوز کامل را از طریق صفحه قیمتگذاری خریداری کنید.
آیا SDK با ساختهای Maven و Gradle سازگار است؟ بهطور قطع. مخزن Maven Conholdate و وابستگی
conholdate-totalرا به فایل ساخت خود اضافه کنید همانطور که در بخش Setup نشان داده شده است، و کتابخانه با هر دو Maven و Gradle کار میکند.
