1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

ПРо Excel

Тема в разделе "С и С++", создана пользователем Aleksus, 11 окт 2007.

  1. Aleksus

    Aleksus Гость

    Репутация:
    0
    Подстажите плз, опять любимый Excel.
    Сколько не смотрел как из StringGrid запихать данные в Excel, так и не нашел того что мне надо или вернее то что я пойму:D
    Заполнение таблицы конечно не важно... пока:)
    Кое как написал следущее:
    Код:
    #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) почему не получается написать просто? Выдает ошибку, а через масив - так нормально:(
    Код:
     .....
    OlePropertySet("Value",StrToFloatDef(StringGrid1->Cells[Column_Counter][Row_Counter],0))
    .....
    2) Все поля заполняются если не значением StringGrid, то нулями, как этого избежать? Т.е. нули то не нужны, оставались бы пустыми:))
    3) При завершении записи Excel спрашивает хотите ли сохранить изменения в файле ... Я хочу всегда!, как сделать что б не задавал этот вопрос?
     
Загрузка...
Похожие Темы - ПРо Excel
  1. Hehabr
    Ответов:
    0
    Просмотров:
    246
  2. RzvCH
    Ответов:
    3
    Просмотров:
    1.044
  3. Zoger
    Ответов:
    2
    Просмотров:
    1.882
  4. pbnoob
    Ответов:
    1
    Просмотров:
    2.211
  5. egkalinichenko
    Ответов:
    0
    Просмотров:
    1.360

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