H>помогите, плиз, примером H>Как прочесть содержимое ячеек из существующего файла Excel с помощью C++ Builder
H>а то я тут ковыряюсь, да разобраться не могу
не могу сказать, что функция, написанная ниже, оптимальна, но представление как "просто" работать с екселем дает. Писана для жены, которая хотела прочитать данные из екселя не задумываясь как это делать -))
unit UExcelReader;
interface
uses OleServer, ComCtrls,ComObj,Excel97,ActiveX;
function ReadRangeFromExcel
(FileName, //имя файла
ListName:string; // название листа
RangeFrom,RangeTo:string // начальная и конечная
//ячейки например 'A1', 'F19'
):variant; //возвращает массив вариантов
implementation
function ReadRangeFromExcel(FileName,ListName:string;RangeFrom,RangeTo:string):variant;
var
ExcelApplication1: TExcelApplication;
IWorkbook: Excel97.ExcelWorkbook;
ISheet: Excel97.ExcelWorksheet;
IRange: Excel97.Range;
V:variant;
begin
// запускаем ексель
if not Assigned(ExcelApplication1)
then ExcelApplication1 := TExcelApplication.Create(Nil);
//
try
ExcelApplication1.ConnectKind := ckRunningOrNew;
ExcelApplication1.Connect;
ExcelApplication1.Visible[0] := False;
// подключаемся к книге
IWorkbook := ExcelApplication1.Workbooks.Add(FileName,0);
ISheet := IWorkbook.Worksheets.Item[ListName] as Excel97.ExcelWorksheet;
IRange := ISheet.Range[RangeFrom,RangeTo];
v := VarArrayCreate([0,0,IRange.Columns.Count-1,IRange.Rows.Count-1],varVariant);
v := IRange.Value;
finally
FreeAndNil(ExcelApplication1);
end;
end;
end.
Re[2]: Как прочитать данные в Excelе из C++ Builder
Здравствуйте KBH, Вы писали:
KBH>[ccode] KBH>#include <ComObj.hpp>
skipped
СПАСИБО большое за пример, теперь все работатет!!!!!!!
НО...
а что делать с локализациями разными
например KBH> V.Exec(PropertySet("Visible")<<false);
Visible по-немецки будет отличаться от Visible по-французски
то есть в немецком офисе и во французском это не отработает
чиво делать, спрашивается, а?
как делать переносимыми в разноязычные офисы?
Re[3]: Как прочитать данные в Excelе из C++ Builder
Здравствуйте FireWorm, Вы писали:
FW>ЛЮЮЮУУУУДИИИИИ!!! FW>Так что с локализациями делать FW>ПОМОГИТЕ, плиз советом, может кто-нить сталкивался
Не знаю поможет ли с немецкими, французкими,но у меня на английской 2к и русской win98 все прекрасно работает в таком виде.
Тут на основе шаблона создается файл с 6 листами, переименовывает их и на первый лист в ячейку А1 пишется строка "ааа",поминаем (пример это, все проверки пропущены)
А вообще всю идею смотри на "королевстве дельфи" цикл статей "По просторам интеграции" части с 1-3.
Останется только превести код с синтаксиса Паскаля на с++.
Более детальную информацию можно подчерпнуть из файлов в директории include\vcl\excel_2k*.h и include\vcl\excel_97*.h.
Re[5]: Как прочитать данные в Excelе из C++ Builder
Здравствуйте, уважвемый, Pavel XP, Вы писали:
PX>Тут на основе шаблона создается файл с 6 листами, переименовывает их и на первый лист в ячейку А1 пишется строка "ааа",поминаем (пример это, все проверки пропущены)
PX> PX>