การฝังข้อมูลภาพโดยตรงลงในไฟล์ 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 ทำงานอย่างไร

กระบวนการทำงานสามารถแบ่งออกเป็นห้าขั้นตอนที่ชัดเจน:

  1. สร้าง Document และ DocumentBuilder - คลาส Document แทนไฟล์ Word ในหน่วยความจำ และ DocumentBuilder ให้ API แบบ fluent สำหรับแทรกเนื้อหา รวมถึงแผนภูมิ

    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);
    
  2. แทรกรูปร่างแผนภูมิ - insertChart รับค่า ChartType (เช่น COLUMN) พร้อมกับความกว้างและความสูงเป็นจุด และคืนค่า Shape ที่เป็นโฮสต์ของแผนภูมิบนหน้า.

    Shape shape = builder.insertChart(ChartType.COLUMN, 432, 252);
    
  3. เข้าถึงอ็อบเจกต์ Chart - คุณสมบัติ Chart ของ Shape เปิดเผยตัวเลือกทั้งหมดที่เกี่ยวกับแผนภูมิ รวมถึงคอลเลกชันของซีรีส์

Chart chart = shape.getChart();
ChartSeriesCollection seriesColl = chart.getSeries();
System.out.println(seriesColl.getCount());

ดู อ้างอิง API สำหรับรายละเอียดเต็มเกี่ยวกับ Chart, ChartSeriesCollection และ enum ที่เกี่ยวข้อง.

  1. ล้างซีรีส์เริ่มต้นและเพิ่มของคุณเอง - แผนภูมิที่เพิ่งแทรกใหม่จะมีซีรีส์ตัวแทนอยู่แล้ว ดังนั้น 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

อ่านเพิ่มเติม