Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Чтение строчки из файла Excel


Автор: SergeyMitrofanov 25.9.2006, 11:58
Существуют ли какие-либо компоненты по работе с файлами, порождаемыми Microsoft Excel?

Если таких компонентов нет, то как прочитать строчку из нетипизированного файла *.xls?

 

Автор: stmamont 27.9.2006, 09:46
SergeyMitrofanov, с файлами excel лучше всего работать с помощью OLE-серверов.
Смотри ссылки снизу

Автор: ИванМ 27.9.2006, 18:42
Я рекомендую пользоваться классом Variant для таких целей. Вот например, чтение из файла excel определенной ячейки. Строку не трудно прочитать через цикл.

String file=[название файла]
String col=[колонка("A","B" и т.д.)]
int row=[номер строки]

Variant App=Variant::CreateObject("Excel.application");
Variant Books=App.OlePropertyGet("Workbooks");
Procedure Open("Open");
Books.Exec(Open<<file);
Variant Book=App.OlePropertyGet("ActiveWorkBook");
Variant sheet=Book.OlePropertyGet("ActiveSheet");
PropertyGet Range("Range");
Variant range=sheet.Exec(Range<<Variant(col+row));
//val - значение ячейки 
String val=range.OlePropertyGet("Value");


не проверял, но должно работать


Автор: stmamont 28.9.2006, 22:03
ИванМ, это то я и имел в виду.

Автор: SergeyMitrofanov 29.9.2006, 10:03
Цитата(ИванМ @ 27.9.2006,  18:42)
Я рекомендую пользоваться классом Variant для таких целей. Вот например, чтение из файла excel определенной ячейки. Строку не трудно прочитать через цикл.

не проверял, но должно работать

Спасибо за такую своевременную помощь!

Удивительно, но этот код 

    String file=[название файла]
    String col=[колонка("A","B" и т.д.)]
    int row=[номер строки]

    Variant App=Variant::CreateObject("Excel.application");
    Variant Books=App.OlePropertyGet("Workbooks");
    Procedure Open("Open");
    Books.Exec(Open<<file);
    Variant Book=App.OlePropertyGet("ActiveWorkBook");
    Variant sheet=Book.OlePropertyGet("ActiveSheet");
    PropertyGet Range("Range");
    Variant range=sheet.Exec(Range<<Variant(col+row));
    //val - значение ячейки 
   String val=range.OlePropertyGet("Value");

идеально компилируется.

Какие компоненты я должен поместить на форму?
Какие библиотеки подключить?
Чтобы уверенно работать со строками файла Excel?


Автор: ShadoWolf 5.10.2006, 14:23
Компоненты для работы с Excel  
AdvStringGrid в TMS-components-позволяет читать и писать файлы в excel одной командой
Ems осуществляет экспорт в excel  и acces
да и другие есть 

 

Автор: SergeyMitrofanov 5.10.2006, 15:12
Компоненты для работы с Excel  
AdvStringGrid в TMS-components-позволяет читать и писать файлы в excel одной командой

  -- какие библиотеки нужно подключать?

Ems осуществляет экспорт в excel  и acces

   -- А разве Ems есть в Builder?


Автор: PbICbKa 9.11.2010, 03:11
Не знаю, принятно ли здесь апать старые темы, но рискну. (не хочу открывать новую ради пары строк кода).
У меня стоит задача как читать данные из экселя, так и записывать их туда. С чтением всё понятно, а как сделать запись? Заранее спасибо за ответ!

Автор: Usper 9.11.2010, 09:13
Хм... поиском умеете пользоваться, но плохо! 
http://forum.vingrad.ru/index.php?showtopic=302606&view=findpost&p=2165675

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)