IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> С++ Builder6 & Excel
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Здравствуйте!

Подскажите пожалуйста, можно ли содержимое компонента-таблицы StringGrid экспортировать в документ Excel?
Если да, то как это делается?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


 
#include <vcl.h>
#include <math.h>
#pragma hdrstop

#include <utilcls.h>
#include <sysvari.h>
#include <ComObj.hpp>

#include "Unit_Stochastic_variables.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2MS *Form2MS;

.......

AnsiString RefToCell(int ARow, int ACol)
{
return ("A" + ACol - 1) + IntToStr(ARow);
}
//---------------------------------------------------------------------------
bool SaveAsExcelFile(TStringGrid AGrid, AnsiString ASheetName, AnsiString AFileName)
{
int xlWBATWorksheet = -4167;
int Row, Col;
AnsiString GridPrevFile;
OleVariant XLApp, Sheet, Data;
int i, j;
// Prepare Data
Data = VarArrayCreate([1, AGrid.RowCount, 1, AGrid.ColCount], varVariant);
for (i=0;i<=AGrid.ColCount-1;i++)
for (j=0;j<=AGrid.RowCount-1;j++)
Data[j+1][i+1] = AGrid.Cells[i][j];
// Create Excel-OLE Object
Result = false;
XLApp = CreateOleObject("Excel.Application");
try
{
// Hide Excel
XLApp.Visible = false;
// Add new Workbook
XLApp.Workbooks.Add(xlWBatWorkSheet);
Sheet = XLApp.Workbooks[1].WorkSheets[1];
Sheet.Name = ASheetName;
// Fill up the sheet
Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount,
AGrid.ColCount)].Value = Data;
// Save Excel Worksheet
try
{
XLApp.Workbooks[1].SaveAs(AFileName);
Result = true;
}
catch (...)
{
// Error ?
}
catch (...)
{
// Quit Excel
if (!VarIsEmpty(XLApp))
{
XLApp.DisplayAlerts = false;
XLApp.Quit;
XLAPP = Unassigned;
Sheet = Unassigned;
}
}
}
}




и вооот такой список ошибок..
[C++ Error] Unit_Stochastic_variables.cpp(66): E2188 Expression syntax
[C++ Error] Unit_Stochastic_variables.cpp(69): E2247 '_fastcall Variant::operator [](const int)' is not accessible
[C++ Error] Unit_Stochastic_variables.cpp(71): E2451 Undefined symbol 'Result'
[C++ Error] Unit_Stochastic_variables.cpp(76): E2288 Pointer to structure required on left side of -> or ->*
[C++ Error] Unit_Stochastic_variables.cpp(78): E2316 'Workbooks' is not a member of 'OleVariant'
[C++ Error] Unit_Stochastic_variables.cpp(78): E2451 Undefined symbol 'xlWBatWorkSheet'
[C++ Error] Unit_Stochastic_variables.cpp(79): E2316 'Workbooks' is not a member of 'OleVariant'
[C++ Error] Unit_Stochastic_variables.cpp(80): E2316 'Name' is not a member of 'OleVariant'
[C++ Error] Unit_Stochastic_variables.cpp(82): E2316 'Range' is not a member of 'OleVariant'
[C++ Error] Unit_Stochastic_variables.cpp(87): E2316 'Workbooks' is not a member of 'OleVariant'
[C++ Error] Unit_Stochastic_variables.cpp(93): E2174 The '...' handler must be last
[C++ Error] Unit_Stochastic_variables.cpp(97): E2064 Cannot initialize 'const Variant &' with 'OleVariant'
[C++ Error] Unit_Stochastic_variables.cpp(97): E2342 Type mismatch in parameter 'V' (wanted 'const Variant &', got 'OleVariant')
[C++ Error] Unit_Stochastic_variables.cpp(99): E2316 'DisplayAlerts' is not a member of 'OleVariant'
[C++ Error] Unit_Stochastic_variables.cpp(100): E2316 'Quit' is not a member of 'OleVariant'
[C++ Error] Unit_Stochastic_variables.cpp(101): E2451 Undefined symbol 'XLAPP'
[C++ Error] Unit_Stochastic_variables.cpp(106): E2252 'catch' expected
[C++ Warning] Unit_Stochastic_variables.cpp(106): W8070 Function should return a value
[C++ Warning] Unit_Stochastic_variables.cpp(106): W8004 'xlWBATWorksheet' is assigned a value that is never used

Большое количество ошибок типа "is not member of OleVariant", и поскольку имею дело с Билдером, не знаю как переделать..
Помогите пожалуйста довести до ума начатое!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 2.06.2024 3:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name