Главная страница
    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.47 MB
Время: 0.006 c
15-1213088790
zAlexandrz
2008-06-10 13:06
2008.07.27
Проблема с трассирокой программы


15-1212964953
Поросенок Винни-Пух
2008-06-09 02:42
2008.07.27
Возвращаясь к неименованным пайпам


15-1212475156
pasha_golub
2008-06-03 10:39
2008.07.27
Заюзать .lib от Borland C compiler в Delphi


2-1214217352
tey
2008-06-23 14:35
2008.07.27
текст в непонятой кодировке


15-1213021834
Randew
2008-06-09 18:30
2008.07.27
Ну загружается компьютер





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