![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как из БД засунуть информацию в Excel 2000.
edit_box © (2003-07-18 11:04:00)
Пробывал делать в Excel 97, получается, а в 2000 не хочет.
Наверно Microsoft сделало какието изменения в Ole.
Если кто работал, то помогите.
Hawk2 (2003-08-11 11:24:00) [1]
Посмотри на Королевстве Делфи статейки (По волнам интеграции) там три части (должны быть). Там сам решишь каким способом быстрее и как.
Карелин Артем (2003-08-11 10:34:00) [2]
Alexey Nepryahin © (25.07.03 20:48)
Range["A1","A2"].Select;- это лишнее!
Alexey Nepryahin (2003-07-25 20:48:00) [3]
Попробуй следующее:
Range["A1","A2"].Select;
Range["A1","A2"].Formula := Чего вставлять;
Serginio (2003-07-25 19:15:00) [4]
Использовать ОлеКонтейнер.
vvm (2003-07-25 18:48:00) [5]
Можно оставить Excel97. Работает с MS Office 2000
Boogier (2003-07-25 13:30:00) [6]
Можно использовать именованные параметры
Напирмер:
Excel.Workbooks.Open(Filename:="C:\z\file1.xls")
интересующийся (2003-07-25 11:09:00) [7]
в Excele метод Sort имеет одинаковые параметры в 97 и ХР, и другие в 2000
Карелин Артем (2003-07-25 10:32:00) [8]
>Карелин Артем Напрямую - это CreateOLEObject
Оно самое.
Alex_*** (2003-07-25 09:21:00) [9]
Кстати, если нужно просто выбросить данные в сетку, то можно сделать текстовый файл, и выбрасывать в него данные через tab - разделитель столбцов. разделитель строк - стандартный 0xD, 0xA. Называешь его *.xls и вперед.
AbrosimovA (2003-07-25 09:01:00) [10]Есть ещё один способ, "пихать" данные в 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, но файл можно скопировать на другой компьютер с предустановленным офисом и там его открыть без каких-нибудь проблем.
Пока.
Фикус (2003-07-25 06:45:00) [11]
const
xlLCID=LOCALE_USER_DEFAULT;
...
ExcelApplication1.Workbooks.Add(n,xlLCID);
...
Rol (2003-07-25 06:32:00) [12]
>Карелин Артем Напрямую - это CreateOLEObject? :)
edit_box (2003-07-25 04:41:00) [13]
azdesign, Карелин Артем> если вас это не затруднит, подскажите чайнику, как напрямую использовать OLE.
Заранее благодарен.
Карелин Артем (2003-07-22 14:45:00) [14]
Там постоянно меняется число параметров в методах. Я лично использую OLE напрямую и практически все нормально работает в 97-ХР Екселях.
azdesign (2003-07-22 13:08:00) [15]
Отказался от использования OLE, потому что Мелкософт в каждой версии меняет правила, за ним не уследить, генерирую напрямую в файл.
edit_box (2003-07-18 11:23:00) [16]А засовываю так:
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;
stone (2003-07-18 11:12:00) [17]
Смотря как ты засовываешь :))