Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Автоматизация создания меток данных для графиков в Excel через Delphi

Delphi , Технологии , OLE

Автоматизация создания меток данных для графиков в Excel через Delphi

Вопрос, поднятый пользователем, связан с автоматическим созданием меток данных для графиков в Excel, используя язык программирования Object Pascal в среде Delphi. Проблема заключается в том, что при использовании стандартной функции ApplyDataLabels для разделения текста и процентов метки должны отображаться на разных строках. Обычно разделителем служит символ ';', однако в данном случае необходимо использовать символ перевода строки (New Line).

Решение проблемы

Применение символа перевода строки в функции ApplyDataLabels не дало желаемого результата при использовании кода Chr(10). Однако, как было отмечено в подтвержденном ответе, для корректной работы с функцией ApplyDataLabels необходимо передать символ перевода строки в виде строкового типа данных, который может быть интерпретирован Excel. В Delphi это можно сделать, используя тип AnsiString с символом перевода строки в виде #10.

E.ActiveChart.ApplyDataLabels(xlDataLabelsShowLabelAndPercent, false, true,
                              true, false, true, true, false, false, AnsiString(#10));

Пример кода

Для демонстрации, рассмотрим простой пример кода на Object Pascal, который создает график в Excel с метками данных, где текст и проценты разделены на разные строки:

uses
  ExcelDLL;

var
  ExcelApp, ExcelBook, ExcelSheet, ExcelChart: Variant;
  DataLabels: String;
begin
  ExcelApp := GetObject('Excel.Application');
  ExcelBook := ExcelApp.Workbooks.Add;
  ExcelSheet := ExcelBook.Worksheets[0];
  ExcelSheet.Range['A1'] := 'Data';
  ExcelSheet.Range['A2'] := 'Series 1';
  ExcelSheet.Range['A3'] := 'Series 2';
  ExcelSheet.Range['B1'] := 10;
  ExcelSheet.Range['B2'] := 20;
  ExcelSheet.Range['B3'] := 30;
  ExcelSheet.Range['A4'] := '';
  ExcelChart := ExcelSheet.ChartCreate(Type:=xlColumnClustered, Left:=50, Width:=500, Top:=50, Height:=250);
  ExcelChart.SetSourceData(ExcelSheet.Range['A1'].CurrentRegion);
  DataLabels := 'Label1' + #10 + '100%' + #10 + #10 + 'Label2' + #10 + '100%';
  ExcelChart.ApplyDataLabels(xlDataLabelsShowLabelAndPercent, false, true, true, false, true, true, false, false, AnsiString(DataLabels));
  ExcelApp.Visible := true;
end;

В этом примере создается график с двумя сериями данных, а метки данных формируются в виде строки DataLabels, где текст и проценты разделены символом перевода строки #10.

Заключение

Использование символа перевода строки в виде строкового типа данных AnsiString(#10) позволяет корректно разделить текст и проценты на разные строки в метках данных для графиков в Excel при автоматическом создании меток через Delphi. Это решение подтверждено и работает в соответствии с требованиями пользователя.

Создано по материалам из источника по ссылке.

Описание контекста: Вопрос связан с автоматизацией создания меток данных для графиков в Excel, используя Delphi и Object Pascal, и решением проблемы разделения текста и процентов на разные строки с помощью символа перевода строки.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: OLE ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2024-12-26 16:34:53/0.0032370090484619/0