Настройка формата даты для оси категорий в слайдах Java

Введение в настройку формата даты для оси категорий в слайдах Java

В этом уроке мы узнаем, как установить формат даты для оси категорий в диаграмме PowerPoint с помощью Aspose.Slides для Java. Aspose.Slides for Java — это мощная библиотека, которая позволяет вам программно создавать, манипулировать и управлять презентациями PowerPoint.

Предварительные условия

Прежде чем начать, убедитесь, что у вас есть следующее:

  1. Библиотека Aspose.Slides для 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. Настройте ось категорий

Теперь давайте настроим ось категорий для отображения дат в определенном формате (например, гггг).

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);

Вот и все! Вы успешно установили формат даты для оси категорий в диаграмме PowerPoint с помощью Aspose.Slides для Java.

Полный исходный код для установки формата даты для оси категорий в слайдах 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);

##Заключение

Вы успешно настроили формат даты для оси категорий на диаграмме слайдов Java с помощью Aspose.Slides for Java. Это позволяет вам представлять значения дат в нужном формате на ваших диаграммах. Не стесняйтесь изучать дополнительные варианты настройки в соответствии с вашими конкретными требованиями.

Часто задаваемые вопросы

Как изменить формат даты для оси категорий?

Чтобы изменить формат даты для оси категорий, используйте командуsetNumberFormat на оси категорий и укажите желаемый шаблон формата даты, например «гггг-ММ-дд» или «ММ/гггг». Обязательно установитеsetNumberFormatLinkedToSource(false) чтобы переопределить формат по умолчанию.

Могу ли я использовать разные форматы дат для разных диаграмм в одной презентации?

Да, вы можете установить разные форматы дат для осей категорий на разных диаграммах в одной презентации. Просто настройте ось категорий для каждой диаграммы по мере необходимости.

Как добавить на диаграмму дополнительные точки данных?

Чтобы добавить дополнительные точки данных на диаграмму, используйтеgetDataPoints().addDataPointForLineSeriesметод для ряда данных и укажите значения данных.