Keresés

Új hozzászólás Aktív témák

  • ATISoft

    tag

    Üdv!

    C++ Builder 6-ban éppen az Excellel küzdök és van egy probléma amire nem találtam megoldást eddig (pedig biztosan van)

    Egy eléggé nagy szöveges állományt kell Excelbe átpakolnom, formázottan,
    ami megy is, csak meglehetősen lassan, ugyanis cellánként pakolom az adatokat és egy óráig is eltart mire befejezi a műveletet.

    Szeretném megoldani azt, hogy az adatokat először egy tömbbe másolom, majd Excelben range-el kijelölöm hová akarom tenni a tömb tartalmát és úgy illesztem be. Netről szoktam ollózgatni példákat amiket átalakítok, viszont erre nem találtam normális megoldást.

    Nemrég óta foglalkozom ezzel és még van sok sötét folt.

    Tud valaki segíteni hogyan csináljam?
    Egy példaprogram volna a legjobb.

    Nagyon leegyszerűsítve most kb. így néz ki a program:
    (a cellánként másolást kellene kiváltani valami gyorsabb módszerre)

    Variant XL,v0,v1,v2;

    XL=Variant:: CreateObject("excel.application");
    XL.OlePropertySet("Visible",false);
    XL.OlePropertyGet("Workbooks").OleProcedure("Open",forras_file);
    v0=XL.OlePropertyGet("Workbooks");
    v1=v0.OlePropertyGet("Item",1);
    v0=v1.OlePropertyGet("Worksheets") ;

    v0=XL.OlePropertyGet("Sheets",1);
    v1=v0.OlePropertyGet("Cells");
    v2=v0.OlePropertyGet("Columns");

    i=1;

    while(!feof(f)){
    v1.OlePropertyGet("Item",i,1).OlePropertySet("Value",var_1);
    v1.OlePropertyGet("Item",i,2).OlePropertySet("Value",var_2);
    v1.OlePropertyGet("Item",i,3).OlePropertySet("Value",var_3);
    i+=1;
    fread(&tstru,30,1,f);
    }

    fclose(f);
    v1.OlePropertyGet("EntireColumn").OleProcedure("AutoFit");
    XL.OleProcedure("Save");
    XL.OleProcedure("Quit");

    [ Szerkesztve ]

Új hozzászólás Aktív témák