ПРо Excel

Тема в разделе "Borland C++ Builder & Kylix", создана пользователем Aleksus, 11 окт 2007.

  1. Aleksus

    Aleksus Гость

    Подстажите плз, опять любимый Excel.
    Сколько не смотрел как из StringGrid запихать данные в Excel, так и не нашел того что мне надо или вернее то что я пойму:D
    Заполнение таблицы конечно не важно... пока:)
    Кое как написал следущее:
    Код (Text):
    #include <vcl.h>
    #pragma hdrstop
    #include <math.hpp>
    #include <vcl\excel_2k.h>
    #include <math.h>
    #include "Unit1.h"
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    double F[10][10];
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)

    {int i,j;
    for (i=1; i<10; i++)
    StringGrid1->Cells[0][i]=i*i;
    for (i=0; i<10; i++)
    for (j=0; j<10; j++)
    F[i][j]=StrToFloatDef(StringGrid1->Cells[i][j],0);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Variant var_Excel, var_Sheet;
    int Row_Counter, Column_Counter, Max_Column = 1, Max_Row = 10;
    String XlsFileName1 = ExtractFilePath(Application->ExeName)+"OTCHET.xls";
    var_Excel=CreateOleObject("Excel.Application");
    var_Excel.OlePropertyGet("Application").OlePropertyGet("Workbooks").
    OleProcedure("Open" , OleVariant(XlsFileName1));
    var_Sheet = var_Excel.OlePropertyGet("ActiveSheet");

    Row_Counter=0;
    for (Row_Counter; Row_Counter < Max_Row; Row_Counter ++)
    {
    Column_Counter=0;
    for (Column_Counter; Column_Counter < Max_Column; Column_Counter ++)
    var_Sheet.OlePropertyGet("Cells", Row_Counter+1, Column_Counter+1).
    OlePropertySet("Value",F[Column_Counter][Row_Counter]);
    }
    var_Excel.OlePropertyGet("Application").OleProcedure("Quit");
    var_Sheet = Unassigned;
    var_Excel = Unassigned;
    }
    Но появляются вопросы:
    1) почему не получается написать просто? Выдает ошибку, а через масив - так нормально:(
    Код (Text):
     .....
    OlePropertySet("Value",StrToFloatDef(StringGrid1->Cells[Column_Counter][Row_Counter],0))
    .....
    2) Все поля заполняются если не значением StringGrid, то нулями, как этого избежать? Т.е. нули то не нужны, оставались бы пустыми:))
    3) При завершении записи Excel спрашивает хотите ли сохранить изменения в файле ... Я хочу всегда!, как сделать что б не задавал этот вопрос?
     
Загрузка...
Похожие Темы - ПРо Excel
  1. RzvCH
    Ответов:
    3
    Просмотров:
    903
  2. Zoger
    Ответов:
    2
    Просмотров:
    1.736
  3. pbnoob
    Ответов:
    1
    Просмотров:
    1.927
  4. egkalinichenko
    Ответов:
    0
    Просмотров:
    1.265
  5. savl
    Ответов:
    20
    Просмотров:
    5.042

Поделиться этой страницей