PavelG2010 0 / 0 / 0 Регистрация: 15.07.2013 Сообщений: 44 |
||||
1 |
||||
19.12.2013, 19:13. Показов 13176. Ответов 5 Метки нет (Все метки)
Здравствуйте, подскажите как добавить строку в excel с помощью delphi 7
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
19.12.2013, 19:13 |
5 |
droider 4884 / 2756 / 849 Регистрация: 04.10.2012 Сообщений: 10,054 |
||||
19.12.2013, 19:58 |
2 |
|||
PavelG2010,
1 |
PavelG2010 0 / 0 / 0 Регистрация: 15.07.2013 Сообщений: 44 |
||||
21.12.2013, 10:30 [ТС] |
3 |
|||
PavelG2010,
А как строку добавить, а не одну ячейку
0 |
droider 4884 / 2756 / 849 Регистрация: 04.10.2012 Сообщений: 10,054 |
||||
21.12.2013, 21:15 |
4 |
|||
PavelG2010, верно. Поправлюсь
0 |
0 / 0 / 0 Регистрация: 15.07.2013 Сообщений: 44 |
|
21.12.2013, 22:24 [ТС] |
5 |
Благодарствую p.s. Не подскажи справочник или сайт команд?
0 |
4884 / 2756 / 849 Регистрация: 04.10.2012 Сообщений: 10,054 |
|
21.12.2013, 22:39 |
6 |
Тут
1 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
21.12.2013, 22:39 |
Помогаю со студенческими работами здесь [Delphi] Копировать / Вставить готовый код вставить в delphi
Вставить текст программы в Delphi Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 6 |
I am developing an application that need to generate excel sheets. How do we append rows
to an existing excel sheet? I am using Delphi 2007.(and I am using SM Software TXLS… components…but I am ok with answers in native delphi excel components).
Thanking you all,
Pradeep
CloudyMarble
36.7k70 gold badges96 silver badges130 bronze badges
asked Feb 25, 2011 at 6:55
Over the years, I’ve found Deborah Pate’s site has helped me by providing useful code samples: http://www.djpate.freeserve.co.uk/AutoExcl.htm. We use the CreateOleObject approach.
answered Feb 25, 2011 at 13:09
RobertFrankRobertFrank
7,32211 gold badges53 silver badges98 bronze badges
1
Normally you won’t need to append rows, because you can just reference any cell to write in it. You may need to insert rows in the middle of your sheet like this:
ExcelApplication.ActiveSheet.Rows[10].Insert;
or
ExcelApplication.ActiveSheet.ActiveCell.EntireRow.Insert;
If you develop for Excel, I think it is more convenient to use TExcelApplication because it is just a wrapper around the type library. You can use the source code of the imported type library as a reference. Another helpful tool is the macro recording in Excel itself. The VBA code created by recording a macro can easily be translated into Delphi code. Sometimes you need to do little changes or improvements, but it is still a lot of help when you are stuck.
answered Feb 25, 2011 at 7:08
GolezTrolGolezTrol
114k17 gold badges184 silver badges209 bronze badges
2
Hier some untested sample code you can use to insert data to Excel:
var
Cols: integer;
Rows: integer;
Excel, XLSheet: Variant;
failure: Integer;
begin
failure:=0;
try
Excel:=CreateOleObject('Excel.Application');
except
failure:=1;
end;
if failure = 0 then
begin
Excel.Visible:=False;
Excel.WorkBooks.Open(<Excell_Filename>);
XLSheet := Excel.Worksheets[1];
Cols := XLSheet.UsedRange.Columns.Count;
Rows := XLSheet.UsedRange.Rows.Count;
//Insert Data
Excel.Cells[1, 1].Value := 'SwissDelphiCenter.ch';
Excel.Cells[2, 1].Value := 'http://www.swissdelphicenter.ch';
Excel.Cells[3, 1].Value := FormatDateTime('dd-mmm-yyyy', Now);
Excel.Range['A2', 'D2'].Value := VarArrayOf([1, 10, 100, 1000]);
// Save the Workbook
Excel.SaveAs(Excell_Filename);
Excel.Workbooks.Close;
Excel.Quit;
Excel:=Unassigned;
end;
end;
answered Feb 25, 2011 at 9:28
CloudyMarbleCloudyMarble
36.7k70 gold badges96 silver badges130 bronze badges
Форум программистов Vingrad
Модераторы: MetalFan |
Поиск: |
|
Опции темы |
ARlex |
|
||
Новичок Профиль Репутация: нет
|
Просмотрел кучу топиков, «разобрался» с Excel`ем, однако так и не понял, как добавить строку в Excel. |
||
|
|||
_hunter |
|
||
Эксперт Профиль
Репутация: 2
|
сикрет в том, что строку вставлять никуда не нужно — она уже там есть. ——————— Tempora mutantur, et nos mutamur in illis… |
||
|
|||
ARlex |
|
||
Новичок Профиль Репутация: нет
|
Нет, не так, В таблице уже есть данные, Она заполненная, Если записывать сразу в ячейки, то сотрется старые данне. Необходимо вставить строку (например между 13 и 14), сдвинув все остальные вниз,и заполнить ее по столбцам. |
||
|
|||
_hunter |
|
||
Эксперт Профиль
Репутация: 2
|
ааа… так бы сразу и говорил.
——————— Tempora mutantur, et nos mutamur in illis… |
||
|
|||
ARlex |
|
||
Новичок Профиль Репутация: нет
|
Работает вот так:
Это сообщение отредактировал(а) ARlex — 13.3.2006, 18:24 |
||
|
|||
_hunter |
|
||
Эксперт Профиль
Репутация: 2
|
хз. я, обычно, через OLE работал… ——————— Tempora mutantur, et nos mutamur in illis… |
||
|
|||
Marlin |
|
||
Бывалый Профиль Репутация: нет
|
Страница=E.WorkBooks(1).Sheets(номСтраницы); вставка из 1с ——————— Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает. |
||
|
|||
Albinos_x |
|
||
Evil Skynet Профиль
Репутация: 15
|
вопрос недавно задавался ——————— «Кто владеет информацией, тот владеет миром» |
||
|
|||
|
Правила форума «Delphi: ActiveX/СОМ/CORBA» | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) |
0 Пользователей: |
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема » |
← →
ZSergey
(2005-09-01 09:18)
[0]
и еще
Как запустить в Excel VBA-макрос через OLE?
Спасибо
← →
ZSergey
(2005-09-01 11:26)
[1]
неужели никто не знает, хоть скажите, вообще это возможно или нет??
← →
jack128 ©
(2005-09-01 12:22)
[2]
Application.Run
← →
ZSergey
(2005-09-01 12:46)
[3]
Насколько я понял запуск приложение? В чем смысл?
← →
YurikGL ©
(2005-09-01 20:45)
[4]
app := CreateOleObject(«Excel.Application»);
>добавить строкустолбец в Excel»e??
что-то типа
app.activesheet.Rows(«2:2»).Select;
app.Selection.Insert Shift:=xlDown
app.activesheet.Columns(«D:D»).Select
app.Selection.Insert Shift:=xlToRight
>Как запустить в Excel VBA-макрос через OLE?
Попробуй ExcelApplication1.Run(«имя макроса»)
← →
Карелин Артем ©
(2005-09-01 22:13)
[5]
На это дело будут сильно влиять вплоть до запрета этого такие веши, как функции обеспечения безопасности и антивирусы.
← →
Карелин Артем ©
(2005-09-01 22:23)
[6]
Имелась в виду работа с макросами. Остальное без проблем.
← →
Попов Виталий
(2005-09-02 17:12)
[7]
вот пример добавления столбцов/строк, а также выполнения макроса
procedure TForm1.Button1Click(Sender: TObject);
Var
Exl,WB,Sh:OleVariant;
begin
Exl:=CreateOleObject(«Excel.Application»);
try
WB:=exl.Workbooks.Add(«C:Книга1.xls»);
Sh:=Wb.WorkSheets[1];
//Добавление строки
Sh.Rows[2].Insert;
//2-это номер строки по образцу и перед котрой будет
//добавлена новая.
Sh.Columns[2].Insert;
//Аналогично добавлению строки
//Выполнение макроса
Exl.Run(«Макрос1»);
Exl.Visible:=True;
finally
Exl:=Unassigned;
WB:=Unassigned;
Sh:=Unassigned;
end;
Примечание: макрос вызовется при любом выбранном уровне безопасности; если у макроса есть входные параметры их надо задавать через переменные типа OleVariant;
Например: Exl.Run(«TestFunction», Arg1, Arg2).
Макрос можно выполнять только после инициализации книги, в которой он храниться
WB:=exl.Workbooks.Add(«C:Книга1.xls»);
← →
ZSergey
(2005-09-06 15:52)
[8]
to Попову Виталию
Большое спасибо, все работает
Delphi excel вставка строки
и еще
Как запустить в Excel VBA-макрос через OLE?
Спасибо
← →
ZSergey ( 2005-09-01 11:26 ) [1]
неужели никто не знает, хоть скажите, вообще это возможно или нет??
← →
jack128 © ( 2005-09-01 12:22 ) [2]
← →
ZSergey ( 2005-09-01 12:46 ) [3]
Насколько я понял запуск приложение? В чем смысл? 🙂
← →
YurikGL © ( 2005-09-01 20:45 ) [4]
app := CreateOleObject(«Excel.Application»);
>добавить строкустолбец в Excel»e??
что-то типа
app.activesheet.Rows(«2:2»).Select;
app.Selection.Insert Shift:=xlDown
app.activesheet.Columns(«D:D»).Select
app.Selection.Insert Shift:=xlToRight
>Как запустить в Excel VBA-макрос через OLE?
Попробуй ExcelApplication1.Run(«имя макроса»)
На это дело будут сильно влиять вплоть до запрета этого такие веши, как функции обеспечения безопасности и антивирусы.
← →
Карелин Артем © ( 2005-09-01 22:23 ) [6]
Имелась в виду работа с макросами. Остальное без проблем.
← →
Попов Виталий ( 2005-09-02 17:12 ) [7]
вот пример добавления столбцов/строк, а также выполнения макроса
procedure TForm1.Button1Click(Sender: TObject);
Var
Exl,WB,Sh:OleVariant;
begin
Exl:=CreateOleObject(«Excel.Application»);
try
WB:=exl.Workbooks.Add(«C:Книга1.xls»);
Sh:=Wb.WorkSheets[1];
//Добавление строки
Sh.Rows[2].Insert;
//2-это номер строки по образцу и перед котрой будет
//добавлена новая.
Sh.Columns[2].Insert;
//Аналогично добавлению строки
//Выполнение макроса
Exl.Run(«Макрос1»);
Exl.Visible:=True;
finally
Exl:=Unassigned;
WB:=Unassigned;
Sh:=Unassigned;
end;
Примечание: макрос вызовется при любом выбранном уровне безопасности; если у макроса есть входные параметры их надо задавать через переменные типа OleVariant;
Например: Exl.Run(«TestFunction», Arg1, Arg2).
Макрос можно выполнять только после инициализации книги, в которой он храниться
WB:=exl.Workbooks.Add(«C:Книга1.xls»);
← →
ZSergey ( 2005-09-06 15:52 ) [8]
to Попову Виталию
Большое спасибо, все работает 🙂
Источник
Delphi excel вставка строки
Профиль
Группа: Участник
Сообщений: 5
Регистрация: 7.11.2005
Репутация: нет
Всего: нет
ARlex |
|
||
|
_hunter |
|
||
Профиль Репутация: 2 |
|||
|
Профиль
Группа: Участник
Сообщений: 5
Регистрация: 7.11.2005
Репутация: нет
Всего: нет
ARlex |
|
||
|
_hunter |
|
||
Профиль Репутация: 2
|
|||
|
Профиль
Группа: Участник
Сообщений: 5
Регистрация: 7.11.2005
Репутация: нет
Всего: нет
ARlex |
|
||
Код |
WorkSheet.Cells.Item[12,12].Select; XLApp.ActiveCell.EntireRow.Insert(xlDown,xlFormatFromLeftOrAbove); |
Это сообщение отредактировал(а) ARlex — 13.3.2006, 18:24
_hunter |
|
||
Профиль Репутация: 2 |
|||
|
Бывалый
Профиль
Группа: Участник
Сообщений: 170
Регистрация: 20.2.2006
Репутация: нет
Всего: 1
Marlin |
|
||
|
Albinos_x |
|
||||
Evil Skynet Профиль Репутация: 15
1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.
[ Время генерации скрипта: 0.1219 ] [ Использовано запросов: 21 ] [ GZIP включён ] Источник Adblock |