Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.01.03;
Скачать: [xml.tar.bz2];

Вниз

Как экспортировать ListView в Excel?   Найти похожие ветки 

 
Иван   (2009-11-12 12:00) [0]

Нашел такой код:
procedure ListToExcel(ListView: TListView);
var
 row, i: integer;
 Range, Sheet: VAriant;
begin
 try
   Excel := CreateOleObject("Excel.Application");
 except
   raise Exception.Create("Невозможно поключиться к серверу Excel");
 end;
 Screen.Cursor := crHourGlass;
 Excel.SheetsInNewWorkBook := 1;
 Excel.WorkBooks.Add;
 Sheet := Excel.Workbooks[1].Sheets[1];
 Range := Sheet.Columns;
 Range.Columns[1].ColumnWidth := 30;
 Range.Columns[n].ColumnWidth := 30;
 Range.Columns[n + 1].ColumnWidth := 30;
 Range.Columns.Font.Size := 8;
 Range := Sheet.Range["a1:f1"];
 Range.Font.Size := 15;
 Range.Font.Bold := True;
 Range.Columns.Interior.ColorIndex := 6;
 Range.HorizontalAlignment := 3;
 Sheet.Cells[1, 2] := "Данные на" + DateToStr(Date); //Заголовок
 Range := Sheet.Range["a2:f2"];
 Range.Font.Size := 10;
 Range.Font.Bold := True;
 Sheet.Cells[2, 1] := "АА"; //Названия столбцов
 Sheet.Cells[2, n] := "ББ";
 Sheet.Cells[2, n + 1] := "вв";
 Row := 3;
 for i := 0 to List.Items.Count - 1 do
 begin
   Sheet.Cells[Row, 1] := ListView.Items.Item[i].Caption;
   Sheet.Cells[Row, 2] := ListView.Items.Item[i].SubItems[n];
   Sheet.Cells[Row, 3] := ListView.Items.Item[i].SubItems[n + 1];
   inc(Row);
 end;
 Screen.Cursor := crDefault;
 if SaveDialog.Execute then
   Excel.WorkBooks[1].SaveAs(exs.FileName); //Сохраняем
 Excel.Visible := True; //Показываем Excel
end;
Ошибки начинаются сразу же при компиляции: неизв. идентиф. Excel и т.д..
Подскажите пожалуйста как правильно сделать экспорт содержимого ListView в Excel?


 
Dennis I. Komarov ©   (2009-11-12 12:16) [1]

Я бы тоже так ругался судя по этому отрывку. Да и вообще я ему верю...


 
Иван   (2009-11-12 12:21) [2]

>Dennis I. Komarov. Кому веришь? Подскажи пожалуйста как правильно сделать экспорт содержимого ListView в Excel?


 
Dennis I. Komarov ©   (2009-11-12 12:25) [3]


> неизв. идентиф. Excel

начни с этого... он же не дурак, он знает что ему не нравиться


 
Иван   (2009-11-13 10:14) [4]

И че ему присвоить? ExelAplication?


 
Dennis I. Komarov ©   (2009-11-13 11:25) [5]

Описать соответствующим типом...


 
Иван   (2009-11-13 12:16) [6]

Чесно говоря я незнаю каким типом. Может посоветуешь? Я думал в примере переименованы имена компонентов Экселя..


 
Dennis I. Komarov ©   (2009-11-13 12:23) [7]

И чем же тебе помочь?


 
kyn66 ©   (2009-11-13 12:56) [8]


var
row, i: integer;
Range, Sheet: VAriant;
Ex : Variant;
begin
try
//   Excel := CreateOleObject("Excel.Application");
  Ex := CreateOleObject("Excel.Application");
except
  raise Exception.Create("Невозможно поключиться к серверу Excel");
end;
...


 
Дмитрий Белькевич   (2009-11-13 13:22) [9]

Компьютеру стоит верить. Если он пишет, что ему excel неизвестен - то значит так оно есть.


> Я думал в примере переименованы имена компонентов Экселя.


Для того, что бы в паскале обратиться к любой переменной она должна быть где-то описана (указан её тип, [5]). Переменная в твоём коде нигде не описана, что тебе компьютер честно и написал.


> Чесно говоря я незнаю каким типом. Может посоветуешь?


Ищи в гугле, искать по ключевикам CreateOleObject Excel.Application. Наверняка еще несколько десятков примеров будет.


 
Иван   (2009-11-13 15:17) [10]

Спасибо большое за помощь kyn66 и Дмитрий!!!


 
Иван   (2009-11-13 15:32) [11]

Указал тип, исправил мелкие ошибки в коде, теперь компилится отлично но при попытке экспорта в программе вылетает ошибка "Исключение класса EOleException OLE Error 800A03EC на строке:  Range.Columns[n].ColumnWidth := 30; Переменную n была не описана, указал как Integer. В чем еще могут быть траблы?


 
Иван   (2009-11-13 15:52) [12]

P.S. Процедуре экспорта передаю имя заполненного данными списка:ListToExcel(Form1.ListView3).


 
Bel ©   (2009-11-13 16:08) [13]

Переменную мало описать. Неплохо было бы еще её инициализировать и присваивать какие-то значения по ходу алгоритма.


 
kyn66 ©   (2009-11-13 16:14) [14]


> Range.Columns[1].ColumnWidth := 30;  Range.Columns[n].ColumnWidth
> := 30;  Range.Columns[n + 1].ColumnWidth := 30;


n нигде не присвоено никакого значения!


 
Иван   (2009-11-13 17:16) [15]

>kyn66. Указать начальное значение 0 для переменной n? У меня такое чувство что нехватает формулы для выч.знач. n, только не пойму какой :(


 
kyn66 ©   (2009-11-13 22:11) [16]


> Иван   (13.11.09 17:16) [15]


Ну это ты уже сам должен решить к какому столбцу обращаться.
Columns[0] - 1-й
Columns[1] - 2-й
Columns[2] - 3-й
... и т.д.

см.  http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1274


 
Иван   (2009-11-14 13:40) [17]

Столбцы ListView или Excel? Как организовать послед.перебор с пересылкой значений ячеек ListView в таблицу экселя?



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.01.03;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.005 c
6-1193385014
Alex_C
2007-10-26 11:50
2010.01.03
Заполнение поля TWebBrowser типа file


1-1232695597
yurik85
2009-01-23 10:26
2010.01.03
Изменение данных в текстовом файле


15-1256743947
Игорь
2009-10-28 18:32
2010.01.03
Бросить курить


2-1257960684
Валерий
2009-11-11 20:31
2010.01.03
Привязка линий


1-1231953992
Тыщ
2009-01-14 20:26
2010.01.03
Как использовать строковые константы в asm..end?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский