การฝังข้อมูลภาพโดยตรงลงในไฟล์ 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 แบบ fluent สำหรับแทรกเนื้อหา รวมถึงแผนภูมิ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());
ดู อ้างอิง API สำหรับรายละเอียดเต็มเกี่ยวกับ Chart, ChartSeriesCollection และ enum ที่เกี่ยวข้อง.
- ล้างซีรีส์เริ่มต้นและเพิ่มของคุณเอง - แผนภูมิที่เพิ่งแทรกใหม่จะมีซีรีส์ตัวแทนอยู่แล้ว ดังนั้น
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 });
<!--[CODE_SNIPPET_END]-->
5. **บันทึกเอกสาร** - ในที่สุด, `doc.save()` จะเขียนไฟล์ DOCX ไปยังดิสก์.
<!--[CODE_SNIPPET_START]-->
```java
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
แผนภูมิแบบกระจาย (Scatter charts) แสดงคู่ค่าตัวเลข X และ Y แทนการใช้หมวดหมู่ ซึ่งทำให้มันมีประโยชน์สำหรับการแสดงความสัมพันธ์หรือการกระจายข้อมูล ChartSeriesCollection มีการเปิดเผย overload ของ add() โดยเฉพาะสำหรับวัตถุประสงค์นี้: แทนการใช้ array ของหมวดหมู่ คุณจะส่งสอง array 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 เพียงไม่กี่บรรทัดของโค้ด — รวมถึงแผนภูมิคอลัมน์, แถบ, เส้น, พาย, และกระจาย — ปรับแต่งหมวดหมู่และชุดข้อมูล, และสร้างเอกสารที่ดูเป็นมืออาชีพบนเซิร์ฟเวอร์. อย่าลืมขอรับใบอนุญาตที่เหมาะสมสำหรับการใช้งานในสภาพแวดล้อมการผลิต; ใบอนุญาตชั่วคราวพร้อมให้บริการบน หน้าใบอนุญาตชั่วคราว, และรายละเอียดการกำหนดราคาฉบับเต็มสามารถตรวจสอบได้บน หน้าแสดงราคา. เริ่มผสานการสร้างแผนภูมิวันนี้และมอบเอกสารที่ขับเคลื่อนด้วยข้อมูลให้กับผู้ใช้ของคุณที่โดดเด่น.
FAQs
ฉันจะสร้างแผนภูมิในเอกสาร Word ด้วย Java และ Conholdate.Total ได้อย่างไร? เรียก
insertChartบนDocumentBuilderพร้อมกับChartTypeที่ต้องการ, ดึงChartจากShapeที่คืนค่า, ลบชุดข้อมูลเริ่มต้น, และเพิ่มหมวดหมู่และข้อมูลของคุณเองด้วยseriesColl.add(), จากนั้นบันทึกเอกสาร. โค้ดเต็มแสดงในตัวอย่างด้านบน.ประเภทแผนภูมิที่รองรับคืออะไร? SDK รองรับแผนภูมิแบบคอลัมน์, แถบ, เส้น, พาย, กระจาย, และหลายประเภทแผนภูมิมาตรฐานอื่น ๆ ผ่าน enum
ChartType. เปลี่ยนค่าของ enum ที่ส่งให้insertChartเพื่อสลับประเภท.แผนภูมิกระจายแตกต่างจากแผนภูมิคอลัมน์หรือแผนภูมิแท่งอย่างไร? แผนภูมิกระจายแสดงคู่ค่าตัวเลข X และ Y แทนการใช้หมวดหมู่ที่ตั้งชื่อไว้ ดังนั้นคุณจึงใช้เมธอด
add(name, xValues, yValues)ของChartSeriesCollectionแทนการส่งอาเรย์ของหมวดหมู่ฉันต้องตั้งค่าใบอนุญาตสำหรับการสร้างแผนภูมิหรือไม่? ใช่. สามารถรับใบอนุญาตชั่วคราวได้จาก หน้าลิขสิทธิ์ชั่วคราว. สำหรับโครงการระยะยาว ให้ซื้อใบอนุญาตเต็มรูปแบบผ่าน หน้าราคา.
SDK รองรับการสร้างด้วย Maven และ Gradle หรือไม่? แน่นอน เพิ่มที่เก็บ Maven ของ Conholdate และการพึ่งพา
conholdate-totalไปในไฟล์ build ของคุณตามที่แสดงในส่วน Setup และไลบรารีจะทำงานกับทั้ง Maven และ Gradle
