Главная страница
    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.006 c
2-1214305065
Jimmy
2008-06-24 14:57
2008.07.27
Сочетания без повторений


15-1213006023
@!!ex
2008-06-09 14:07
2008.07.27
У меня есть матричный принтер...


2-1214633047
Yury
2008-06-28 10:04
2008.07.27
Access violation...


2-1214485477
Romashka
2008-06-26 17:04
2008.07.27
Массив


15-1213097628
aston2204
2008-06-10 15:33
2008.07.27
Компоненты DevExpress





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