在 Java 幻灯片中设置分类轴的日期格式

Java 幻灯片中分类轴日期格式设置简介

在本教程中,我们将学习如何使用 Aspose.Slides for Java 设置 PowerPoint 图表中类别轴的日期格式。Aspose.Slides for Java 是一个功能强大的库,允许您以编程方式创建、操作和管理 PowerPoint 演示文稿。

先决条件

开始之前,请确保您已准备好以下物品:

  1. Aspose.Slides for Java 库(您可以从这里.
  2. Java开发环境设置。

步骤 1:创建 PowerPoint 演示文稿

首先,我们需要创建一个 PowerPoint 演示文稿,在其中添加图表。请确保您已导入必要的 Aspose.Slides 类。

//文档目录的路径。
String dataDir = "Your Document Directory";
Presentation pres = new Presentation();

步骤 2:向幻灯片添加图表

现在,让我们在 PowerPoint 幻灯片中添加一个图表。我们将在此示例中使用面积图。

IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Area, 50, 50, 450, 300);

步骤 3:准备图表数据

我们将设置图表数据和类别。在此示例中,我们将使用日期类别。

IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
wb.clear(0);

chart.getChartData().getCategories().clear();
chart.getChartData().getSeries().clear();

//添加日期类别
chart.getChartData().getCategories().add(wb.getCell(0, "A2", convertToOADate(new GregorianCalendar(2015, 1, 1))));
chart.getChartData().getCategories().add(wb.getCell(0, "A3", convertToOADate(new GregorianCalendar(2016, 1, 1))));
chart.getChartData().getCategories().add(wb.getCell(0, "A4", convertToOADate(new GregorianCalendar(2017, 1, 1))));
chart.getChartData().getCategories().add(wb.getCell(0, "A5", convertToOADate(new GregorianCalendar(2018, 1, 1))));

//添加数据系列
IChartSeries series = chart.getChartData().getSeries().add(ChartType.Line);
series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B2", 1));
series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B3", 2));
series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B4", 3));
series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B5", 4));

步骤 4:自定义分类轴

现在,让我们自定义类别轴以特定格式显示日期(例如,yyyy)。

chart.getAxes().getHorizontalAxis().setCategoryAxisType(CategoryAxisType.Date);
chart.getAxes().getHorizontalAxis().setNumberFormatLinkedToSource(false);
chart.getAxes().getHorizontalAxis().setNumberFormat("yyyy");

步骤 5:保存演示文稿

最后,保存 PowerPoint 演示文稿。

pres.save(dataDir + "test.pptx", SaveFormat.Pptx);

就是这样!您已成功使用 Aspose.Slides for Java 设置 PowerPoint 图表中类别轴的日期格式。

Java 幻灯片中设置分类轴日期格式的完整源代码

	//文档目录的路径。
	String dataDir = "Your Document Directory";
	Presentation pres = new Presentation();
	try
	{
		IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Area, 50, 50, 450, 300);
		IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
		wb.clear(0);
		chart.getChartData().getCategories().clear();
		chart.getChartData().getSeries().clear();
		chart.getChartData().getCategories().add(wb.getCell(0, "A2", convertToOADate(new GregorianCalendar(2015, 1, 1))));
		chart.getChartData().getCategories().add(wb.getCell(0, "A3", convertToOADate(new GregorianCalendar(2016, 1, 1))));
		chart.getChartData().getCategories().add(wb.getCell(0, "A4", convertToOADate(new GregorianCalendar(2017, 1, 1))));
		chart.getChartData().getCategories().add(wb.getCell(0, "A5", convertToOADate(new GregorianCalendar(2018, 1, 1))));
		IChartSeries series = chart.getChartData().getSeries().add(ChartType.Line);
		series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B2", 1));
		series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B3", 2));
		series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B4", 3));
		series.getDataPoints().addDataPointForLineSeries(wb.getCell(0, "B5", 4));
		chart.getAxes().getHorizontalAxis().setCategoryAxisType(CategoryAxisType.Date);
		chart.getAxes().getHorizontalAxis().setNumberFormatLinkedToSource(false);
		chart.getAxes().getHorizontalAxis().setNumberFormat("yyyy");
		pres.save("Your Output Directory" + "test.pptx", SaveFormat.Pptx);
	}
	finally
	{
		if (pres != null) pres.dispose();
	}
}
public static String convertToOADate(GregorianCalendar date) throws ParseException
{
	double oaDate;
	SimpleDateFormat myFormat = new SimpleDateFormat("dd MM yyyy");
	java.util.Date baseDate = myFormat.parse("30 12 1899");
	Long days = TimeUnit.DAYS.convert(date.getTimeInMillis() - baseDate.getTime(), TimeUnit.MILLISECONDS);
	oaDate = (double) days + ((double) date.get(Calendar.HOUR_OF_DAY) / 24) + ((double) date.get(Calendar.MINUTE) / (60 * 24)) + ((double) date.get(Calendar.SECOND) / (60 * 24 * 60));
	return String.valueOf(oaDate);

##结论

您已成功使用 Aspose.Slides for Java 自定义 Java Slides 图表中类别轴的日期格式。这样您就可以在图表上以所需的格式显示日期值。您可以根据您的特定要求随意探索更多自定义选项。

常见问题解答

如何更改类别轴的日期格式?

要更改分类轴的日期格式,请使用setNumberFormat方法并提供所需的日期格式模式,例如“yyyy-MM-dd”或“MM/yyyy”。确保设置setNumberFormatLinkedToSource(false)覆盖默认格式。

我可以在同一个演示文稿中对不同的图表使用不同的日期格式吗?

是的,您可以为同一演示文稿中不同图表的分类轴设置不同的日期格式。只需根据需要自定义每个图表的分类轴即可。

如何向图表添加更多数据点?

要向图表添加更多数据点,请使用getDataPoints().addDataPointForLineSeries方法在数据系列上提供数据值。