Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.09.2009, 03:11   #1
Serg97
 
Регистрация: 07.08.2009
Сообщений: 4
По умолчанию Доступ к чарту в excel

у меня простой Excel файл с одним Chart ом
Как получить доступ к чарту из Delphi 7?

WS := WB.Worksheets.Item[1] as _Worksheet;
MyChartObjects:=WS.ChartObjects(Emp typaram,lcid) as ChartObjects;
ShowMessage(IntToStr(MyChartObjects .Count));

MyChart:=MyChartObjects.Item(1) as _Chart;
Говорит що интефейс не поддерживается
Пересмотрел все примеры - в примерах Чарт создаётся на лету - а тут уже создан и нужен просто доступ



В AutoIt всё классно работает
$MyChart=$oExReportChart.ActiveShee t.Chartobjects(1).Chart;
$MyChart.Export(@WorkingDir&"\Image s\"&$sRepName&".png","PNG");
Serg97 вне форума Ответить с цитированием
Старый 06.09.2009, 12:16   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

У меня в VB такая ошибка означает,что СОМ объект не создан.
А сам документ программа видит?
Вначале необходимо создать СОМ объект EXCEL,а потом через него и к книге.Код проверил,объект копируеться
Ваш код другой будет,но принцип одинаковый
Код:
 xlApp = CType(CreateObject("Excel.Application"), Microsoft.Office.Interop.Excel.Application)
 xlBookf = CType(xlApp.Workbooks.Add, Microsoft.Office.Interop.Excel.Workbook)
xlBookf = xlApp.Workbooks.Open(mypat & "\file.xls")
 xlSh2 = CType(xlBookf.Worksheets(2), Microsoft.Office.Interop.Excel.Worksheet)

Dim xlCe As Microsoft.Office.Interop.Excel.ChartObjects

 xlCe = xlSh2.ChartObjects

  количество = xlCe.Count
  xlCe.Item(1).Copy()
  
 ширина = xlCe.Item(1).Width

 высота= xlCe.Item(1).Height
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 07.09.2009, 00:39   #3
Serg97
 
Регистрация: 07.08.2009
Сообщений: 4
По умолчанию

да мне на Delphi надо а не VB. У меня в AutoIt - тоже VB/бейсик всё работает
Документ прога видит и сохраняет и всё такое
Тут вопрос либо правильно добраться до нужного объекта в Delphi
либо правильно оттайпкастить
Serg97 вне форума Ответить с цитированием
Старый 07.09.2009, 14:44   #4
pesi
Подтвердите свой е-майл
 
Регистрация: 05.03.2009
Сообщений: 65
По умолчанию

вот изменяем длинну
Код:
VAR
msx, chart, sheet :VARIANT;
begin
  msx:=CreateOleObject('Excel.Application');
  MsX.WorkBooks.open(ExtractFilePath(ParamStr(0))+'1.xls');//открываем документ 1.xls лежащий  в папке с программой
  MsX.Visible:=true;
  Sheet:=MsX.Sheets.Item[3];  //ссылка на лист с именем Лист3
  chart:=sheet.ChartObjects(1);
 chart.Width:=100;
end;
pesi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запретить запуск программы на VBA Excel 2003 в Excel 2007 kovalevskivf Microsoft Office Excel 2 15.05.2009 16:47
Ограниченный доступ к таблице Excel Fear187 Microsoft Office Excel 1 25.11.2008 16:33
очень громоздкие финансовые модели в Excel, а Excel не тянет Ragazza Microsoft Office Excel 7 03.10.2007 20:08
Формирование из excel в ASCII, у меня он формирует по одному клиенту а в Excel нескол Askat Общие вопросы Delphi 0 18.07.2007 06:28
Как вытащить данные из Excel в бд dephi, а потом (после работы с данными) сформировать новый файл excel. Геля БД в Delphi 1 10.04.2007 15:11