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

Вниз

импорт из 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.008 c
2-1212824205
Genty
2008-06-07 11:36
2008.07.27
Как передать текстовые данные с одного компьютера на другой?


15-1213088790
zAlexandrz
2008-06-10 13:06
2008.07.27
Проблема с трассирокой программы


2-1214219491
Евро2008
2008-06-23 15:11
2008.07.27
Повернуть на 90 градусов


3-1202816869
Kuibida
2008-02-12 14:47
2008.07.27
Что за база такая (форматы файлов *.d и *.i) ?


15-1212964470
axis_of_evil
2008-06-09 02:34
2008.07.27
proxy server, mail server





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