Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.01;
Скачать: CL | DM;

Вниз

Как из БД засунуть информацию в Excel 2000.   Найти похожие ветки 

 
edit_box ©   (2003-07-18 11:04) [0]

Пробывал делать в Excel 97, получается, а в 2000 не хочет.
Наверно Microsoft сделало какието изменения в Ole.
Если кто работал, то помогите.


 
stone ©   (2003-07-18 11:12) [1]

Смотря как ты засовываешь :))


 
edit_box ©   (2003-07-18 11:23) [2]

А засовываю так:

var n : OleVariant;
( n,0) А засовываю так:

var n : OleVariant;
q:string;
begin
q:=Table1["name"]....;
n:="d:\jjj.xls";
ExcelApplication1.Workbooks.Add(n,0);
ExcelWorkBook1.ConnectTo(ExcelApplication1.ActiveWorkBook);
ExcelApplication1.Cells.Item[i,j].Value:=q;
ExcelWorkBook1.Save;
ExcelWorkBook1.Close;


 
azdesign   (2003-07-22 13:08) [3]

Отказался от использования OLE, потому что Мелкософт в каждой версии меняет правила, за ним не уследить, генерирую напрямую в файл.


 
Карелин Артем ©   (2003-07-22 14:45) [4]

Там постоянно меняется число параметров в методах. Я лично использую OLE напрямую и практически все нормально работает в 97-ХР Екселях.


 
edit_box ©   (2003-07-25 04:41) [5]

azdesign, Карелин Артем> если вас это не затруднит, подскажите чайнику, как напрямую использовать OLE.
Заранее благодарен.


 
Rol   (2003-07-25 06:32) [6]

>Карелин Артем Напрямую - это CreateOLEObject? :)


 
Фикус ©   (2003-07-25 06:45) [7]

const
xlLCID=LOCALE_USER_DEFAULT;
...
ExcelApplication1.Workbooks.Add(n,xlLCID);
...


 
AbrosimovA ©   (2003-07-25 09:01) [8]

Есть ещё один способ, "пихать" данные в Excel из базы, о котором здесь возможно никто не знает или не хочет упоминать.
Хотя этот способ для тех, кто не боится использовать нестандартные компоненты.
А теперь подробнее остановимся на предлагаемым мной методе.
1. Устанавливаем библиотеку невизуальных компонентов FlexCel.
2. Кладем на форму, а можно в модуль данных два из них -
- XLSAdapter и FlexCelReport.
3. Свойства компонентов:
XLSAdapter.SaveFormat=[snXLS];
FlexCelReport.Adapter=XLSAdapter;
4. Кладем на форму кнопку "Сохранить".

procedure TMainForm.Button1Click(Sender: TObject);
var PathEx: string;
begin
if SaveDialog1.Execute then PathEx:=Savedialog1.FileName;
if FileExists(PathEx) then DeleteFile(PathEx);
if PathEx<>"" then
begin
DataModule1.FlexcelReport1.FileName:=PathEx;
DataModule1.FlexcelReport1.Run;
end;
end;


5. Создаем файл шаблона, например, template.xls следующего вида:

-----------------------------------------------------------------
Список работников цеха ППП

ФИО Адрес Должность ( См. выше) Есть ещё один способ, "пихать" данные в Excel из базы, о котором здесь возможно никто не знает или не хочет упоминать.
Хотя этот способ для тех, кто не боится использовать нестандартные компоненты.
А теперь подробнее остановимся на предлагаемым мной методе.
1. Устанавливаем библиотеку невизуальных компонентов FlexCel.
2. Кладем на форму, а можно в модуль данных два из них -
- XLSAdapter и FlexCelReport.
3. Свойства компонентов:
XLSAdapter.SaveFormat=[snXLS];
FlexCelReport.Adapter=XLSAdapter;
4. Кладем на форму кнопку "Сохранить".

procedure TMainForm.Button1Click(Sender: TObject);
var PathEx: string;
begin
if SaveDialog1.Execute then PathEx:=Savedialog1.FileName;
if FileExists(PathEx) then DeleteFile(PathEx);
if PathEx<>"" then
begin
DataModule1.FlexcelReport1.FileName:=PathEx;
DataModule1.FlexcelReport1.Run;
end;
end;


5. Создаем файл шаблона, например, template.xls следующего вида:

-----------------------------------------------------------------
Список работников цеха ППП

ФИО Адрес Должность Раб.телефон Дом.телефон
##Cust##FIO ##Cust##Addr ##Cust##Spec ##Cust##WTel ##Cust##HTel

-----------------------------------------------------------------

Где:
Cust - это имя компонента TTable;
FIO,Addr,Spec,WTel,HTel - имена полей вашей базы.

Теги вида ##Cust##FIO и т.д. заменяются данными из таблицы базы.

По нажатию на кнопку(См. выше) открывается диалог для сохранения содержимого вашей базы в файл Excel(*.xls). Имя файла для сохранения выбирайте отличное от имени файла шаблона. Причем сохранение происходит и в том случае, когда у вас на компьютер даже не установлен Excel, но файл можно скопировать на другой компьютер с предустановленным офисом и там его открыть без каких-нибудь проблем.
Пока.


 
Alex_***   (2003-07-25 09:21) [9]

Кстати, если нужно просто выбросить данные в сетку, то можно сделать текстовый файл, и выбрасывать в него данные через tab - разделитель столбцов. разделитель строк - стандартный 0xD, 0xA. Называешь его *.xls и вперед.


 
Карелин Артем ©   (2003-07-25 10:32) [10]

>Карелин Артем Напрямую - это CreateOLEObject
Оно самое.


 
интересующийся   (2003-07-25 11:09) [11]

в Excele метод Sort имеет одинаковые параметры в 97 и ХР, и другие в 2000


 
Boogier ©   (2003-07-25 13:30) [12]

Можно использовать именованные параметры

Напирмер:
Excel.Workbooks.Open(Filename:="C:\z\file1.xls")


 
vvm   (2003-07-25 18:48) [13]

Можно оставить Excel97. Работает с MS Office 2000


 
Serginio   (2003-07-25 19:15) [14]

Использовать ОлеКонтейнер.


 
Alexey Nepryahin ©   (2003-07-25 20:48) [15]

Попробуй следующее:
Range["A1","A2"].Select;
Range["A1","A2"].Formula := Чего вставлять;


 
Карелин Артем ©   (2003-08-11 10:34) [16]

Alexey Nepryahin © (25.07.03 20:48)
Range["A1","A2"].Select; - это лишнее!


 
Hawk2   (2003-08-11 11:24) [17]

Посмотри на Королевстве Делфи статейки (По волнам интеграции) там три части (должны быть). Там сам решишь каким способом быстрее и как.



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

Текущий архив: 2003.09.01;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.023 c
14-1658
Ketmar
2003-08-12 11:53
2003.09.01
едё телевизор:


14-1629
Tornado
2003-08-13 08:26
2003.09.01
форум умер


14-1660
kaif
2003-08-12 14:57
2003.09.01
Вирус в HTML ?


14-1582
Antik
2003-08-13 11:12
2003.09.01
расширения файлов


1-1371
Alex-21
2003-08-12 19:48
2003.09.01
TRxRichEdit