C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
NUjno tipa pomosh excelem rabota
VainahskiyPapa
  Отправлено: 06.08.2003, 06:21


Дежурный стрелочник

Группа: Участник
Сообщений: 46



Otvet`te ktonibud` na dva voprosa:
Kak poluchit` kolichestvo strok i stolbzov iz excel i kak peredat` imya v parametr OleProcedure("Open", Path) — proboval kak v example v Urokah po Excelu na etom saite — nichego ne poluchaetsya govorit chto nujen TAutoStrings — kogda stavlyu TAutoStrings args; args[1]="asas"; ne poluchaetsya opyat` oshibka.

Na schet strok i stolbzov — delal taK: int height=Sh.OlePropertyGet("UsedRange").OlePropertyGet("columns"); — govorit chto nemojet konvertit`variant type (Dispatch) v (Integer) . A esli vmesto columns tol`ko "column" to vidaet tol`ko "1".

V obshem mne nujno sdelat` dve veshi — poluchit kolichestvo strok i stolbzov (ne height i width) && peredat` programno iz buildera iz TEdit1 v OleProcedure("Open", path);

Pomogiteeeeeeeeeeeeeeeeeeeeeeeeee narod!!! Esli mojno kak mojno bolee podrobno!!!! Spasibo zaranee!!!!
Admin
Отправлено: 08.08.2003, 12:07


Владимир

Группа: Администратор
Сообщений: 1190



Если у вас C++Builder5 — переходите на 6
или включите файл utilcls.h в проект.

CODE

#include "utilcls.h"


По поводу UsedRange:

CODE

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Variant wC = Sh.OlePropertyGet("UsedRange").OlePropertyGet("Height");
    int wwc = (int)wC;
    Variant wH = Sh.OlePropertyGet("UsedRange").OlePropertyGet("Width");
    int wwh = (int)wH;
    //-----
    Variant crow = Sh.OlePropertyGet("UsedRange").OlePropertyGet("Rows").OlePropertyGet("Count");
    int wrow = (int)crow;
    Variant ccol = Sh.OlePropertyGet("UsedRange").OlePropertyGet("Columns").OlePropertyGet("Count");
    int wcol = (int)ccol;

    AnsiString s = "Height= "+IntToStr(wwc)+" , Width= "+IntToStr(wwh);
    s = s+ "\nRows= "+IntToStr(wrow)+" , Cols= "+IntToStr(wcol);
    ShowMessage(s);
}


По поводу Open:

CODE

Variant App=Variant::CreateObject("Excel.Application");
AnsiString sFile = GetCurrentDir()+"\\NaclSf.xlt";
App.OlePropertyGet("WorkBooks").OleProcedure("Open",sFile.c_str(),0,false,1);


VainahskiyPapa
Отправлено: 11.08.2003, 06:34


Дежурный стрелочник

Группа: Участник
Сообщений: 46



Spasibooooooooooooooooooooooooo. Vi nastoyashi sisadmin!!!!!! Ne podumaite chto ya koverkayu vashu zitatu biggrin.gif
---------------------------------------------------------------
У дождя есть чему поучиться: когда идет дождь многие пытаются пробежать быстрее чтобы не замочиться или спрятаться под навесом или что-то еще — но факт в том что все они практически одинаково будут мокрыми — так давайте не суетиться под проливным дождем и идти невзирая на стихию — ведь тогда мы хотя бы не будем в замешательстве
Из книги кодекса самурая.

Вернуться в Вопросы программирования в C++Builder