Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Excel и C++Builder

249
08 декабря 2005 года
DissDoc
639 / / 01.10.2004
Как читать файл xls (или она еще книгой называется)?
Куда копать? или у кого есть пример?
8.8K
09 декабря 2005 года
dark_king
35 / / 27.10.2005
Цитата:
Originally posted by DissDoc
Как читать файл xls (или она еще книгой называется)?
Куда копать? или у кого есть пример?


Видимо копать надо в сторону OLE обьектов.
Вот пример экспорта данных из базы (правда на Делфи, но принцип тот же).

Код:
procedure TfmStudy.mmExcelClick(Sender: TObject);
var n,i:integer;
ExcelApp:Variant;
begin
  try
    ExcelApp:=CreateOleObject('Excel.Application');
  except
    MessageDlg('Cannot open Excel',mtError,[MbOk],0);
    Exit;
  end;
  ExcelApp.Application.EnableEvents:=false;
  ExcelApp.WorkBooks.Add;
  ExcelApp.ActiveWorkBook.WorkSheets[1].Columns[1].ColumnWidth:=20;
  ExcelApp.ActiveWorkBook.WorkSheets[1].Columns[2].ColumnWidth:=20;
  ExcelApp.ActiveWorkBook.WorkSheets[1].Columns[3].ColumnWidth:=20;
  ExcelApp.ActiveWorkBook.WorkSheets[1].Columns[4].ColumnWidth:=20;
  ExcelApp.ActiveWorkBook.WorkSheets[1].Columns[5].ColumnWidth:=20;
  ExcelApp.ActiveWorkBook.WorkSheets[1].Columns[6].ColumnWidth:=20;
  ExcelApp.ActiveWorkBook.WorkSheets[1].Cells[1,1]:='Фам. студ.';
  ExcelApp.ActiveWorkBook.WorkSheets[1].Cells[1,2]:='Имя студ.';
  ExcelApp.ActiveWorkBook.WorkSheets[1].Cells[1,3]:='Предмет';
  ExcelApp.ActiveWorkBook.WorkSheets[1].Cells[1,4]:='Фамилия преподав.';
  ExcelApp.ActiveWorkBook.WorkSheets[1].Cells[1,5]:='Имя преподавателя';
  ExcelApp.ActiveWorkBook.WorkSheets[1].Cells[1,6]:='Отчество преподават.';
  fmdbm.aqStudy.First;
  n:=fmdbm.aqStudy.RecordCount;
  for i:=2 to n+1 do
  begin
    ExcelApp.ActiveWorkBook.WorkSheets[1].Cells[i,1]:=fmdbm.aqStudystudentsurname.AsString;
    ExcelApp.ActiveWorkBook.WorkSheets[1].Cells[i,2]:=fmdbm.aqStudystudentname.AsString;
    ExcelApp.ActiveWorkBook.WorkSheets[1].Cells[i,3]:=fmdbm.aqStudysubject.AsString;
    ExcelApp.ActiveWorkBook.WorkSheets[1].Cells[i,4]:=fmdbm.aqStudytechersurname.AsString;
    ExcelApp.ActiveWorkBook.WorkSheets[1].Cells[i,5]:=fmdbm.aqStudyteachername.AsString;
    ExcelApp.ActiveWorkBook.WorkSheets[1].Cells[i,6]:=fmdbm.aqStudyteacherfather.AsString;
    fmdbm.aqStudy.Next;
  end;
  fmdbm.aqStudy.First;
  ExcelApp.Visible:=true;
end;
246
09 декабря 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by DissDoc
Как читать файл xls (или она еще книгой называется)?
Куда копать? или у кого есть пример?



Копать здесь

249
09 декабря 2005 года
DissDoc
639 / / 01.10.2004
ой, прошу прощения. я немного не правильно написал. Мне нужно прочитать данные в связке. Т.е. данные у меня сгруппированы. а как их читать ума не приложу. В макросе это выглядет так
Код:
Sub Macros1()
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "e"
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "r"
    Range("A3").Select
    ActiveCell.FormulaR1C1 = "t"
    Range("A4").Select
    ActiveCell.FormulaR1C1 = "y"
    Range("A5").Select
    ActiveCell.FormulaR1C1 = "j"
    Range("A6").Select
    ActiveCell.FormulaR1C1 = "k"
    Range("A7").Select
    ActiveCell.FormulaR1C1 = "l"
    Range("A8").Select
    ActiveCell.FormulaR1C1 = "y"
    Range("A9").Select
    ActiveCell.FormulaR1C1 = "q"
    Range("A11").Select
    ActiveCell.FormulaR1C1 = "a"
    Range("A10").Select
    ActiveCell.FormulaR1C1 = "c"
    Range("A1:A11").Select
    Selection.Rows.Group
    Range("A1:A5").Select
    Selection.Rows.Group
    Range("A6:A12").Select
    Selection.Rows.Group
    Range("A3:A6").Select
    Selection.Rows.Group
    Range("A8:A11").Select
    Selection.Rows.Group
    Range("A1").Select
End Sub
15K
22 декабря 2005 года
maxheadOff
4 / / 22.12.2005
Цитата:
Originally posted by DissDoc
Как читать файл xls (или она еще книгой называется)?
Куда копать? или у кого есть пример?



/* В Заголовке : #include "Excel_2K_SRVR.h"
Компоненты:

TExcelApplication *ExcelApplication1;
TExcelWorkbook *ExcelWorkbook1;
TExcelWorksheet *ExcelWorksheet1; */

ExcelApplication1->Connect();
ExcelApplication1->Workbooks->Add(Template,NewTemplate); //Создаем Книгу

ExcelWorkbook1->ConnectTo(ExcelApplication1->Workbooks->get_Item(ItemIndex));//Доступ к ней

ExcelWorksheet1->ConnectTo(ExcelApplication1->Worksheets->get_Item(SItemIndex));//Доступ к листу -OleVariant SItemIndex;
ExcelApplication1->set_Visible(0,True); // Показываем
ExcelWorksheet1->Cells->set__Default(Variant(1),Variant(10),Variant(StringToOleStr("Max"))); //Пишем в А10 слово "Max"
ExcelWorksheet1->set_Name(StringToOleStr("maxProbe") ); //Обзываем Лист
ExcelWorksheet1->Activate(); // Это понятно

А вот дальше:
ExcelWorksheet1->get_Range(Variant("A1:C10"),Variant("D10:F15"))->
Borders->set_Value(Variant(xlInsideHorizontal)); - не работает!
Конкретно метод - get_Range(Variant("A1:C10"),Variant("D10:F15"))
У кого-нибудь есть опыт?

PS - Это всё для B6 & Excel10

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог