|
#1
|
|||
|
|||
Delphi and excel
Здравствуйте!
Прошу помощи, подсказки! Имеется CheckBoxList, SpinEdit. Подключаю ексель через библиотеку ComObj. Далее если в CheckBoxList активна первая строка , то в екселе в ячейки "D3" вносится число из SpinEdit1, а если активна первая и вторая строка в CheckBoxList, то в ячейку "D3" вноситься число из SpinEdit1 , а из SpinEdit2 в ячейку "D4". Если первая строка не активна, но активна вторая , то из SpinEdit2 заносится в ячейку "D3" ну и так далее вообщем 66 строк. На данный момент имею: Код:
procedure TForm1.Button1Click(Sender: TObject); var se:TSpinEdit; begin Excel:=CreateOleObject('Excel.Application'); Excel.Application.WorkBooks.Add('C:\Users\Elionor\Desktop\osnova.xls'); d:=FormatDateTime('dd.mm.yy hh.nn.ss',Now); j:=1; for i:=0 to CheckListBox1.Count-1 do begin if CheckListBox1.Checked[i] then begin se:=TSpinEdit(FindComponent('SpinEdit'+IntToStr(i))); if se<>nil then Excel.Range['D'+IntToStr(j)]:=se.text; Inc(j); end; end; Код:
Excel.Range['D3'+IntToStr(j)]:=se.text; если так: Код:
Excel.Cells['4,3'+IntToStr(j)]:=se.text; кто, что думает? |
#2
|
||||
|
||||
У SpinEdit вместо Text можно сразу использовать Value. Попробуйте так
Код:
procedure TForm1.Button1Click(Sender: TObject); var i, j: integer; begin ... j:= 3; for i := 0 to CheckListBox1.Count-1 do if CheckListBox1.Checked[i] then begin Excel.Range['D' + IntToStr(j)].Value:= (FindComponent('SpinEdit' + IntToStr(i)) as TSpinEdit).Value; Inc(j); end; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 14.07.2013 в 18:27. |