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

Вниз

импорт из Excel   Найти похожие ветки 

 
programmer90   (2008-06-26 11:42) [0]

Здравствуйте уважаемые участники и мастера.
Вопрос следующий:
Дан edit на форме, и файл в формате xlsm. В ячейке a1 в файле находится данные.
1) Как импотировать/экспортировать в/из Делфи ячейку/едит таблицы.
2) Как импортировать целую строчку/столбец из Екселя.
Заранее благодарю-с.


 
clickmaker ©   (2008-06-26 11:48) [1]

TExcelApplication?


 
programmer90   (2008-06-27 18:52) [2]


> TExcelApplication?

Да хоть TЧтохотите главное чтобы из  едита(комбобокса) попала в файл Excel.


 
YurikGL ©   (2008-06-27 21:29) [3]

http://kladovka.net.ru/index.cgi?pid=board&rid=363


 
JanMihail   (2008-06-27 22:10) [4]

ExcelApplication.ActiveSheet.Cells[1, 1] := edit1.text


 
programmer90   (2008-06-29 14:20) [5]


> ExcelApplication.ActiveSheet.Cells[1, 1] := edit1.text

В Delphi 7.0 все предельно ясно в Delphi 2007 эта задача не поддаётся решению, вернее под Delphi 2007 .NET.
Пушу такой код

uses
...., ComObj;
.
.
VAR
excel:variant;
.
.
procedure .....ButtonClick....
BEGIN
  excel:=CreateOleObject("Excle.Application");
  Excel.Workbooks.Open["c:\nekotorijdocument.xls"];
  Excel.Range["a1"]:="Helo,world";
  Excel.ActiveWorkbook.Close;
  Excel.Application.Quit;
END;

Ошибка возникает в строке "CreateOleObject"- грит мол нипонятнааа...
Наверное действительно не понимает:)
Под  Delphi 2007 Win32 всё работает замечательно.
Возможен ли какой-либо другой код?
Кто работал на новой версии Delphi 2007, HELP!!!
Заранее благодарю-с.


 
Ляпа   (2008-06-29 15:32) [6]


> programmer90   (29.06.08 14:20) [5]


http://www.rsdn.ru/article/dotnet/ExcelNELateBinding.xml


 
programmmer90   (2008-06-29 15:52) [7]


> http://www.rsdn.ru/article/dotnet/ExcelNELateBinding.xml

Желательно покороче, и на Делфи, а там в на нескольких языках :), всё равно спс.
Мне нужно односторонее(пока) движение, из Делфи в Ексель,
четкий и конкретный код...


 
Игорь Шевченко ©   (2008-06-29 16:43) [8]

http://ln.com.ua/~openxs/articles/smart-questions-ru.html


 
Ляпа   (2008-06-29 17:40) [9]


> programmmer90   (29.06.08 15:52) [7]


> Желательно покороче, и на Делфи

Хм... лопату дали, направление указали, теперь канаву за тебя выкопать?
Сразу предупреждаю - код пригоден только в качестве примера!

unit TestExcel1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ComObj, System.ComponentModel, Borland.Vcl.StdCtrls,
 System.Runtime.InteropServices,
 System.Reflection;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.nfm}
var
 excel, workbooks, workbook,worksheet,range, oWorksheets:TObject;
 excelId:guid;
 args:array[0..0] of TObject;
const
 appProgID="Excel.Application";
procedure TForm1.Button1Click(Sender: TObject);
begin
 excelId:=ProgIdToClassId(appProgID);
 excel:=CreateComObject(excelId);
 workbooks := excel.GetType().InvokeMember(
   "Workbooks", BindingFlags.GetProperty, nil, excel, nil);
 args[0]:="C:\2.xls";
 workbook := workbooks.GetType().InvokeMember(
   "Open", BindingFlags.InvokeMethod, nil, workbooks, args);
 oWorksheets := workbook.GetType().InvokeMember(
     "Worksheets", BindingFlags.GetProperty, nil, workbook, nil);
// Задаем имя страницы
 args[0]  := "Лист1";
// Получаем ссылку на страницу с именем "Лист1"
 worksheet := oWorksheets.GetType().InvokeMember(
   "Item", BindingFlags.GetProperty, nil, oWorksheets, args);
 args[0]:="a1";
 range := worksheet.GetType().InvokeMember(
 "Range", BindingFlags.GetProperty, nil, worksheet, args);
 args[0] := "LMD";
 range.GetType().InvokeMember(
   "Value", BindingFlags.SetProperty, nil, range, args);
workbook.GetType().InvokeMember(
 "Save", BindingFlags.InvokeMethod, nil, workbook, nil);
workbook.GetType().InvokeMember(
 "Close", BindingFlags.InvokeMethod, nil, workbook, nil);
// Уничтожение объекта Excel.
Marshal.ReleaseComObject(excel);
// Вызываем сборщик мусора для немедленной очистки памяти
GC.GetTotalMemory(true);

end;

end.



 
programmmer90   (2008-07-01 00:27) [10]

Удалено модератором
Примечание: Создание пустых сообщений



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

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

Наверх




Память: 0.49 MB
Время: 0.011 c
1-1196278523
worldmen
2007-11-28 22:35
2008.07.27
Нужно динамически создать компонент в проге


2-1214288355
Муслик
2008-06-24 10:19
2008.07.27
treeview


4-1193296400
Василий К.
2007-10-25 11:13
2008.07.27
GWL_EXSTYLE в windows XP


2-1214401410
Makaveli
2008-06-25 17:43
2008.07.27
WinInet и HttpSendRequest


2-1214314234
evgenij
2008-06-24 17:30
2008.07.27
MouseMove