Форум: "Начинающим";
Текущий архив: 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