تصویرسازی زمان‌بندی‌های پروژه به تیم‌ها کمک می‌کند تا هماهنگ بمانند و مهلت‌ها را رعایت کنند. Conholdate.Total for Java ارائه‌دهنده یک SDK قدرتمند است که ایجاد نمودار گانت در جاوا را تنها با چند خط کد آسان می‌کند. در این راهنما خواهید دید که چگونه کتابخانه را تنظیم کنید، داده‌های وظیفه را در یک کاربرگ پر کنید، نمودار میله‌ای پشته‌ای را به یک زمان‌بندی به سبک گانت تبدیل کنید و نتیجه را به اکسل صادر کنید.

راه‌اندازی Conholdate.Total for Java

قبل از شروع کدنویسی، اطمینان حاصل کنید که جاوا ۱۷ یا بالاتر و یک IDE سازگار با Maven دارید. مخزن 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>

شما همچنین می‌توانید آخرین JARها را مستقیماً از صفحه دانلود دریافت کنید. وقتی SDK در مسیر کلاس شما قرار گرفت، آماده‌اید تا نمودار را بسازید.

ساخت گام به گام: ایجاد نمودار گانت در جاوا

مرحله 1: ایجاد کتاب کار و پر کردن داده‌های وظیفه

نمودار گانت ساخته شده به این روش در واقع یک نمودار میله‌ای پشته‌ای است که بر روی داده‌های شیت کاری قرار می‌گیرد، بنابراین اولین قدم ایجاد Workbook، گرفتن اولین Worksheet و پر کردن نام‌های وظیفه، جابجایی‌های شروع و مدت زمان‌هایی است که نمودار از آن‌ها می‌خواند.

com.aspose.cells.Workbook workbook = new com.aspose.cells.Workbook();
com.aspose.cells.Worksheet sheet = workbook.getWorksheets().get(0);

com.aspose.cells.Cells cells = sheet.getCells();
cells.get("A1").putValue("Task");
cells.get("C1").putValue("Duration (Days)");
cells.get("D1").putValue("Start Offset (Days)");

cells.get("A2").putValue("Requirement Analysis");
cells.get("C2").putValue(5);
cells.get("D2").putValue(0);

cells.get("A3").putValue("Design");
cells.get("C3").putValue(7);
cells.get("D3").putValue(5);

cells.get("A4").putValue("Implementation");
cells.get("C4").putValue(24);
cells.get("D4").putValue(12);

cells.get("A5").putValue("Testing");
cells.get("C5").putValue(15);
cells.get("D5").putValue(36);

cells.get("A6").putValue("Deployment");
cells.get("C6").putValue(2);
cells.get("D6").putValue(51);

ستون A نام کار را نگه می‌دارد، ستون C تعداد روزهایی که هر کار طول می‌کشد را نگه می‌دارد، و ستون D تعداد روزهایی که پس از شروع پروژه هر کار آغاز می‌شود را نگه می‌دارد. دو سری نمودار (جابه‌جایی شروع و مدت) مستقیماً از ستون‌های D و C خوانده می‌شوند.

مرحله ۲: افزودن نمودار میله‌ای انباشته و پیکربندی سری‌ها

با وجود داده‌ها، یک نمودار BAR_STACKED به کاربرگ اضافه کنید و سری‌های آن را تنظیم کنید. سری شروع‑افست هر نوار کار را به سمت راست می‌برد؛ سری مدت زمان نوار کار قابل مشاهده را بر روی آن می‌کشد.

int chartIndex = sheet.getCharts().add(com.aspose.cells.ChartType.BAR_STACKED, 7, 0, 30, 10);
com.aspose.cells.Chart chart = sheet.getCharts().get(chartIndex);
chart.getTitle().setText("Gantt Chart");

// Add offset and duration as series
chart.getNSeries().add("D2:D6", true); // Start Offset
chart.getNSeries().add("C2:C6", true); // Duration

// Set task names as categories
chart.getNSeries().setCategoryData("A2:A6");

نمودار در ردیف ۷، ستون ۰ به صفحه‌کار متصل است و به اندازهٔ ۳۰ ردیف در ۱۰ ستون گسترش می‌یابد.

مرحله ۳: استایل نمودار را طوری تنظیم کنید که شبیه یک نمودار گانت باشد

ترفند تبدیل یک نمودار میله‌ای انباشته به شکل نمودار گانت، این است که سری جابجایی را نامرئی کنید تا فقط میله‌های مدت زمان نمایش داده شوند و در موقعیت شروع صحیح شناور باشند.

// Make offset bars invisible
chart.getNSeries().get(0).getArea().setFormatting(com.aspose.cells.FormattingType.NONE);

// Style duration bars
chart.getNSeries().get(1).getArea().setFormatting(com.aspose.cells.FormattingType.CUSTOM);
chart.getNSeries().get(1).getArea().setForegroundColor(com.aspose.cells.Color.getSteelBlue());
chart.getNSeries().get(1).getDataLabels().setShowValue(true);

مرحله 4: پیکربندی محورها، راهنما و اندازه

محور دسته‌بندی را معکوس کنید تا اولین کار در بالای نمودار ظاهر شود، هر دو محور را برچسب‌گذاری کنید و legend را غیرفعال کنید زیرا فقط یک سری معنادار برای خواندن وجود دارد.

// Axis settings
chart.getCategoryAxis().setPlotOrderReversed(true);
chart.getCategoryAxis().getTitle().setText("Tasks");
chart.getValueAxis().getTitle().setText("Days from Start");
chart.getValueAxis().getMajorGridLines().setVisible(true);

// Hide legend
chart.setShowLegend(false);

// Resize chart
chart.getChartObject().setWidth(700);
chart.getChartObject().setHeight(400);

مرحله 5: ذخیره‌سازی کتاب کار

در نهایت، کتاب‌کار را ذخیره کنید. SDK از XLSX، XLS و سایر فرمت‌های فهرست‌شده در enum SaveFormat پشتیبانی می‌کند.

// Save the result
workbook.save("GanttChartResult.xlsx", com.aspose.cells.SaveFormat.XLSX);

فایل GanttChartResult.xlsx را در اکسل (یا هر برنامهٔ صفحه‌گستردهٔ سازگار) باز کنید تا نمودار گانت نهایی که در برگه جاسازی شده است را ببینید.

مثال کامل کد: مثال نمودار گانت جاوا

مثال زیر نشان می‌دهد که چگونه می‌توان یک نمودار گانت را در جاوا از ابتدا تا انتها ایجاد کرد.

public class GanttChartDemo {
    public static void main(String[] args) {
        // Create the workbook and get the first worksheet
        com.aspose.cells.Workbook workbook = new com.aspose.cells.Workbook();
        com.aspose.cells.Worksheet sheet = workbook.getWorksheets().get(0);

// Populate task names, durations, and start offsets
        com.aspose.cells.Cells cells = sheet.getCells();
        cells.get("A1").putValue("Task");
        cells.get("C1").putValue("Duration (Days)");
        cells.get("D1").putValue("Start Offset (Days)");

cells.get("A2").putValue("Requirement Analysis");
        cells.get("C2").putValue(5);
        cells.get("D2").putValue(0);

cells.get("A3").putValue("Design");
        cells.get("C3").putValue(7);
        cells.get("D3").putValue(5);

cells.get("A4").putValue("Implementation");
        cells.get("C4").putValue(24);
        cells.get("D4").putValue(12);

cells.get("A5").putValue("Testing");
        cells.get("C5").putValue(15);
        cells.get("D5").putValue(36);

cells.get("A6").putValue("Deployment");
        cells.get("C6").putValue(2);
        cells.get("D6").putValue(51);

// Add a stacked bar chart that will act as the Gantt chart
        int chartIndex = sheet.getCharts().add(com.aspose.cells.ChartType.BAR_STACKED, 7, 0, 30, 10);
        com.aspose.cells.Chart chart = sheet.getCharts().get(chartIndex);
        chart.getTitle().setText("Gantt Chart");

// Add offset and duration as series
        chart.getNSeries().add("D2:D6", true); // Start Offset
        chart.getNSeries().add("C2:C6", true); // Duration

// Set task names as categories
        chart.getNSeries().setCategoryData("A2:A6");

// Make offset bars invisible
        chart.getNSeries().get(0).getArea().setFormatting(com.aspose.cells.FormattingType.NONE);

// Style duration bars
        chart.getNSeries().get(1).getArea().setFormatting(com.aspose.cells.FormattingType.CUSTOM);
        chart.getNSeries().get(1).getArea().setForegroundColor(com.aspose.cells.Color.getSteelBlue());
        chart.getNSeries().get(1).getDataLabels().setShowValue(true);

// Axis settings
        chart.getCategoryAxis().setPlotOrderReversed(true);
        chart.getCategoryAxis().getTitle().setText("Tasks");
        chart.getValueAxis().getTitle().setText("Days from Start");
        chart.getValueAxis().getMajorGridLines().setVisible(true);

// Hide legend
        chart.setShowLegend(false);

// Resize chart
        chart.getChartObject().setWidth(700);
        chart.getChartObject().setHeight(400);

// Save the result
        workbook.save("GanttChartResult.xlsx", com.aspose.cells.SaveFormat.XLSX);
    }
}

توجه: این مثال کد عملکرد اصلی را نشان می‌دهد. قبل از استفاده از آن در پروژه خود، اطمینان حاصل کنید که مسیرهای فایل و مقادیر پیکربندی را به‌گونه‌ای به‌روز کنید که با محیط واقعی شما مطابقت داشته باشد، بررسی کنید که تمام وابستگی‌های مورد نیاز به‌درستی نصب شده‌اند و به‌طور کامل در محیط توسعه خود تست کنید. اگر با مشکلی مواجه شدید، لطفاً به مستندات رسمی مراجعه کنید یا برای دریافت کمک به تیم پشتیبانی مراجعه نمایید.

نتیجه‌گیری

ایجاد یک نمودار گانت در جاوا با Conholdate.Total for Java به سادگی انجام می‌شود. با پر کردن داده‌های کارها در یک صفحه‌کاری، افزودن یک نمودار میله‌ای انباشته و استایل‌دهی به سری‌ها و محورهای آن، می‌توانید جدول زمانی حرفه‌ای‑ظاهر که مستقیماً داخل یک فایل اکسل قرار دارد، تولید کنید. مخفی کردن سری شروع‑اختلاف در حین استایل‌دهی به سری مدت زمان، تکنیک کلیدی است که یک نمودار میله‌ای انباشته عادی را به نمودار گانت تبدیل می‌کند. به یاد داشته باشید که برای استقرارهای تولیدی نیاز به مجوز تجاری است؛ می‌توانید یک مجوز موقت را از صفحهٔ مجوز موقت دریافت کنید یا جزئیات قیمت‌گذاری را در صفحهٔ قیمت‌گذاری بررسی کنید. امروز شروع به ادغام نمودارهای گانت در برنامه‌های خود کنید و ذینفعان خود را با برنامه‌های بصری واضح مطلع نگه دارید.

FAQs

چگونه یک نمودار گانت در جاوا با استفاده از Conholdate.Total ایجاد کنم؟
یک Workbook ایجاد کنید، یک نمودار BAR_STACKED به یک برگه کاری اضافه کنید و دو سری اضافه کنید: یک سری مخفی برای جابجایی شروع و یک سری قابل مشاهده برای مدت زمان. نام‌های وظیفه را به عنوان داده‌های دسته‌بندی تنظیم کنید، سری قابل مشاهده را استایل دهید و کتاب‌کار را ذخیره کنید. قطعه کد کامل در این مقاله ارائه شده است.

آیا می‌توانم نمودار گانت را به فرمت‌های دیگری غیر از اکسل صادر کنم؟
بله. از آنجا که نمودار در یک کتاب کار جاسازی شده است، می‌توانید فایل را با استفاده از هر مقدار از enum SaveFormat، مانند XLSX، XLS یا ODS ذخیره کنید. برای لیست کامل، به مستندات رسمی مراجعه کنید.

برای استفاده در تولید چه مجوزی لازم است؟
یک مجوز تجاری الزامی است. می‌توانید یک مجوز موقت را از صفحه مجوز موقت درخواست کنید و قیمت‌گذاری را در صفحه قیمت‌گذاری بررسی کنید.

چگونه می‌توانم عملکرد نمودارهای گانت بزرگ را بهبود دهم؟
دامنه داده‌ای که هر سری به آن ارجاع می‌دهد را تا حد امکان محدود نگه دارید، از محاسبه مجدد غیرضروری کتاب‌کار جلوگیری کنید و تماس‌های قالب‌بندی را به سری‌ها و محورهایی که واقعاً نیاز دارید محدود کنید. نگه داشتن تعداد کارها در هر نمودار در حد معقول نیز رندرینگ سریع برای فایل‌های پروژه بزرگ را تضمین می‌کند.

بیشتر بخوانید