Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Неумирающая тема "Экспорт в Excel" / 7 сообщений из 7, страница 1 из 1
05.04.2019, 14:52
    #39797318
FreddyZSX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неумирающая тема "Экспорт в Excel"
Код: 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
05.04.2019, 15:01
    #39797324
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неумирающая тема "Экспорт в Excel"
FreddyZSX
Код: pascal
1.
2.
3.
        Workbook := app.WorkBooks.Add;
        Sheet := w.ActiveSheet;
        Sheet.Name := 'Данные_из_Delphi';
...
Рейтинг: 0 / 0
05.04.2019, 15:20
    #39797337
FreddyZSX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неумирающая тема "Экспорт в Excel"
wadman, не понял, на что вы указываете
...
Рейтинг: 0 / 0
05.04.2019, 15:28
    #39797344
FreddyZSX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неумирающая тема "Экспорт в Excel"
наверно не "app" а " ExcelApp", и не "w" а "Workbook"
сделал через

Sheet := w.ActiveSheet

результат тот же -
выдает ошибку "Неправильный тип переменной"
...
Рейтинг: 0 / 0
05.04.2019, 18:48
    #39797510
Shuraken
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неумирающая тема "Экспорт в Excel"
У меня работает такой код
Код: 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
05.04.2019, 20:37
    #39797533
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неумирающая тема "Экспорт в Excel"
FreddyZSX что может быть?...
Подозреваю что в коллизии ansi<->wide, и неизвестно на каком конце.
Cделай промежуточную переменную типа widestring.

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

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


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