powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Неумирающая тема "Экспорт в Excel"
7 сообщений из 7, страница 1 из 1
Неумирающая тема "Экспорт в Excel"
    #39797318
FreddyZSX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
procedure af_Xls_Save(XLSFile:string);
const
       xlExcel9795 = $0000002B;
       xlExcel8 = 56;
var
  ExcelApp, Sheet,ArrayData,Workbook: OLEVariant;
  Range,Cell1,Cell2:          OLEVariant;
  i,j,r, c:             integer;
  ClassID:              TCLSID;
  Rez :                 HRESULT;
  RowCount, ColCount :  integer;
  tX,tY :  OLEVariant;
begin
     //создаем объект Excel
   ExcelApp := CreateOleObject('Excel.Application');

  //делаем окно Excel невидимым
  ExcelApp.Visible := false;

  //создаем книгу для экспорта
  ExcelApp.Workbooks.Add;


  //создаем объект Sheet(страница) и указываем номер листа (1)
  //в книге, в который будем осуществлять экспорт
  Sheet := ExcelApp.Workbooks[1].WorkSheets[1];

  //задаем имя листу
  Sheet.name:='Данные_из_Delphi';

    //отключаем все предупреждения Excel
     ExcelApp.DisplayAlerts := False;

    //обработка исключения при сохраннении файла
    try
       //формат xls 97-2003 если установлен 2003 Excel
       ExcelApp.Workbooks[1].saveas(XLSFile, xlExcel9795);
       showmessage('Файл сохранил 2003-ий офис');
    except
      //формат xls 97-2003 если установлен 2007-2010 Excel
      ExcelApp.Workbooks[1].saveas(XLSFile, xlExcel8);
      showmessage('Файл сохранил 2007 или 2010-ый офис');
    end;

 //закрываем приложение Excel
 ExcelApp.Quit;

 //очищаем выделенную память
 ExcelApp := Unassigned;
 Sheet := Unassigned;
  exit  ;



На строке
Код: pascal
1.
2.
3.
4.
...
  //задаем имя листу
  Sheet.name:='Данные_из_Delphi';
.....


выдает ошибку "Неправильный тип переменной"
что может быть?...
...
Рейтинг: 0 / 0
Неумирающая тема "Экспорт в Excel"
    #39797324
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreddyZSX
Код: pascal
1.
2.
3.
        Workbook := app.WorkBooks.Add;
        Sheet := w.ActiveSheet;
        Sheet.Name := 'Данные_из_Delphi';
...
Рейтинг: 0 / 0
Неумирающая тема "Экспорт в Excel"
    #39797337
FreddyZSX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman, не понял, на что вы указываете
...
Рейтинг: 0 / 0
Неумирающая тема "Экспорт в Excel"
    #39797344
FreddyZSX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
наверно не "app" а " ExcelApp", и не "w" а "Workbook"
сделал через

Sheet := w.ActiveSheet

результат тот же -
выдает ошибку "Неправильный тип переменной"
...
Рейтинг: 0 / 0
Неумирающая тема "Экспорт в Excel"
    #39797510
Shuraken
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня работает такой код
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
var
      FOleObject: variant;
      vActiveWorkBook: variant;
      vActiveWSheet: variant;
begin
          FOleObject := GetActiveOleObject('Excel.Application');
          //пока не добавили эти две строчки, на одном компьютере клиента ломалась выгрузка данных. На других всё работало прекрасно
          FOleObject.Visible := true;
          FOleObject.Visible := false;

          vActiveWorkBook := FOLEObject.Workbooks.Add;
          vActiveWorkBook.Activate;

          vActiveWSheet := FOLEObject.ActiveSheet;
          vActiveWSheet.Name := 'Данные из Делфи';
...
end;
...
Рейтинг: 0 / 0
Неумирающая тема "Экспорт в Excel"
    #39797533
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreddyZSX что может быть?...
Подозреваю что в коллизии ansi<->wide, и неизвестно на каком конце.
Cделай промежуточную переменную типа widestring.

Код: pascal
1.
2.
3.
4.
var A: widestring;

A:='Данные_из_Delphi'
Sheet.name:='Данные_из_Delphi';
...
Рейтинг: 0 / 0
Неумирающая тема "Экспорт в Excel"
    #39797932
FreddyZSX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Соколинский Борис, спасибо, Вы оказались правы!...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Неумирающая тема "Экспорт в Excel"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]