Excel и C++Builder
Куда копать? или у кого есть пример?
Как читать файл xls (или она еще книгой называется)?
Куда копать? или у кого есть пример?
Видимо копать надо в сторону OLE обьектов.
Вот пример экспорта данных из базы (правда на Делфи, но принцип тот же).
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;
Как читать файл xls (или она еще книгой называется)?
Куда копать? или у кого есть пример?
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
Как читать файл 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