Форум: "Базы";
Текущий архив: 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