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

Вниз

Как из БД засунуть информацию в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.01 c
6-1529
Benedict
2003-06-22 17:56
2003.09.01
Перехват клика по ссылке в браузере?


1-1455
TolikM
2003-08-18 17:38
2003.09.01
SaveDialog для создания каталогов


8-1514
damx
2003-05-03 11:46
2003.09.01
GIF!


14-1577
avch
2003-08-11 09:47
2003.09.01
Windows Api


1-1414
Aleksandr
2003-08-15 14:41
2003.09.01
Как освободить спящий поток?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский