甘特图(Gantt Chart)画法1.Excel;2.Edraw Project

建议使用Edraw Project画甘特图,缺点是收费软件。

一.Excel画甘特图

1.在excel中建数据:

任务开始时间结束时间耗时(h)
需求评审2019/11/12019/11/54
概要设计2019/11/32019/11/119
写代码2019/11/122019/11/209
单元测试2019/11/212019/11/221
测试2019/11/222019/11/308
发布2019/11/302019/12/11

 

2.将时间格式改为常规:

3.选中任务,开始时间,耗时列,插入堆积条形图:

4.设置X轴坐标选项值的最小值为:第一个项目的开始时间(43770):

5.设置Y轴坐标轴选项为:【逆序类别】:

6.单击图表中的蓝色部分,选择【填充与线条】选项卡,选中【无填充】:

7.选中“开始时间”所在的单元格区域,通过【数字】选项卡快速的将其数据类型设置为【短日期】:

8.美化表格。

参考:https://baijiahao.baidu.com/s?id=1628628254039974580&wfr=spider&for=pc

https://www.jianshu.com/p/3c5063b45a8c

https://baijiahao.baidu.com/s?id=1617211315470686680&wfr=spider&for=pc

二.Edraw Project画甘特图

甘特图是一个二维平面图,因其具有简单直观、容易制作、便于理解的特点而常用于项目管理。传统的甘特图一般只适用于比较简单的小型项目,对于企业而言通常都会使用专业的甘特图软件来进行项目管理,比如Edraw Project软件,你甚至不需要特别的编制,只需要将任务名称、工期、开始和完成时间、资源名称等填写清楚,软件便会自动生成甘特图。

1.安装软件:https://www.edrawsoft.cn/edrawproject/tutorial/anzhuang-jihuo/

2.双击运行软件,点击【新建】,软件便会自动进入绘图中心:

用鼠标点击【开始】菜单栏下的【添加任务】或【插入任务】,新建任务列表。使用快捷键Enter可以添加一个与最后一个任务同级的新任务在最后,使用快键键Ins可以插入一个与选中任务同级的任务在上方。

PS:如果需要删除任务也可以直接选中要删除的任务然后用鼠标点击菜单栏上的【删除任务】或者快捷键Delete进行删除。

甘特图中选中一个任务,然后可在右侧的任务面板中对该任务的名称、优先级、进度、里程碑、开始结束时间等进行自由设置,当然你也可以选择用鼠标直接在该任务中进行修改。

我们可以用鼠标直接拖动边框以更改项目的工期,绿色区域代表任务的完成进度,蓝色区域为未完成进度。

如果觉得颜色不好看,还可以通过【视图】选项来更换主题色彩,让甘特图看起来更美观。

最后绘制好的甘特图,可以将它输出为PDF格式,方便打印或分享出去。在【开始】菜单选项中,点击【导出为PDF格式】,然后选择要保存的位置点击确定即可。

 参考及更多图文教程:http://www.edrawsoft.cn/edrawproject/tutorial/create-gantt/

 

 

修改绿色单元格和WBS、任务和任务先导列。其余的列是公式。 甘特图中显示的周数受Excel中可用列数的限制。 使用滑块调整甘特图中显示的日期范围。 一次只能显示/打印48周,因为每周要用5列。 问:工作日栏显示“### #”。我怎么解决这个问题? 您需要安装Excel自带的分析工具包插件。转到工具>插件,并选择分析工具包。 问:我如何让任务2在任务1结束的第二天开始? 对于Task 2的开始日期使用以下公式: = EndDate + 1 对包含task 1结束日期的单元格的引用在哪里 问:如何添加/插入任务和子任务? 为要添加的任务类型复制整个行(或一组行),然后右键单击要插入新任务的行,然后选择insert Copy Cells。 重要提示:当在最后一个子任务之后或在第一个子任务之前插入一个新子任务时,您将需要更新计算级别1 %Complete和Duration(参见下面)的公式来包含新子任务,因为范围不会自动扩展到包含额外的行。 问:基于所有相关子任务的%Complete,我如何计算一级任务的%Complete ? 例子:如果任务1在第11行,子任务在第12-15行,使用以下公式: =总和(F12:F15)/计数(F12 F15): 问:我如何基于子任务的最大结束日期计算第一级任务的持续时间? 示例:如果第1级任务位于第11行,而子任务位于第12-15行,那么使用以下公式 = MAX(D12:D15)c11 问:如何在计算工作日时包括假期? 您可以在NETWORKDAYS函数中添加要排除的假期列表。有关更多信息,请参阅Excel帮助(F1)。 问:如何更改打印设置? 选择要打印的整个单元格范围,然后转到文件>打印区域> Set打印区域。然后转到文件>页面设置或文件>打印预览,并根据需要调整缩放和页面方向。
Java中可以使用Apache POI库来导出Excel表格,同时使用JavaFX的甘特图来生成数据。以下是一个示例代码: ```java import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.FillPatternType; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.chart.CategoryAxis; import javafx.scene.chart.NumberAxis; import javafx.scene.chart.StackedBarChart; import javafx.scene.chart.XYChart; import javafx.scene.layout.BorderPane; import javafx.stage.Stage; public class GanttViewExportToExcel extends Application { @Override public void start(Stage primaryStage) throws Exception { // Create a category axis for the horizontal axis CategoryAxis xAxis = new CategoryAxis(); xAxis.setLabel("Tasks"); // Create a number axis for the vertical axis NumberAxis yAxis = new NumberAxis(); yAxis.setLabel("Time"); // Create a stacked bar chart StackedBarChart<String, Number> chart = new StackedBarChart<>(xAxis, yAxis); // Add the data to the chart XYChart.Series<String, Number> series1 = new XYChart.Series<>(); series1.setName("Task 1"); series1.getData().add(new XYChart.Data<>("Start", 0)); series1.getData().add(new XYChart.Data<>("End", 5)); XYChart.Series<String, Number> series2 = new XYChart.Series<>(); series2.setName("Task 2"); series2.getData().add(new XYChart.Data<>("Start", 1)); series2.getData().add(new XYChart.Data<>("End", 6)); XYChart.Series<String, Number> series3 = new XYChart.Series<>(); series3.setName("Task 3"); series3.getData().add(new XYChart.Data<>("Start", 2)); series3.getData().add(new XYChart.Data<>("End", 7)); chart.getData().addAll(series1, series2, series3); // Create a border pane to hold the chart BorderPane root = new BorderPane(); root.setCenter(chart); // Create a scene for the chart and add it to the stage Scene scene = new Scene(root, 600, 400); primaryStage.setScene(scene); // Export chart data to Excel exportToExcel(chart); primaryStage.show(); } private void exportToExcel(StackedBarChart<String, Number> chart) { // Create a new Excel workbook Workbook workbook = new XSSFWorkbook(); // Create a new sheet in the workbook Sheet sheet = workbook.createSheet("Gantt Chart"); // Add the data to the sheet int rowIndex = 0; for (XYChart.Series<String, Number> series : chart.getData()) { Row row = sheet.createRow(rowIndex++); row.createCell(0).setCellValue(series.getName()); CellStyle style = workbook.createCellStyle(); style.setFillForegroundColor(IndexedColors.GREEN.getIndex()); style.setFillPattern(FillPatternType.SOLID_FOREGROUND); for (XYChart.Data<String, Number> data : series.getData()) { Cell cell = row.createCell(data.getXValue().hashCode() % 65536); cell.setCellValue(data.getYValue().doubleValue()); cell.setCellStyle(style); } } // Resize the columns in the sheet sheet.autoSizeColumn(0); for (int i = 1; i <= 100; i++) { sheet.setColumnWidth(i, 1000); } // Write the workbook to a file try (FileOutputStream outputStream = new FileOutputStream("GanttChart.xlsx")) { workbook.write(outputStream); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { launch(args); } } ``` 这个示例代码会创建一个包含三个任务的甘特图,并将数据导出到Excel表格中。你可以根据需要修改数据和文件名来创建自己的甘特图
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值