Q&A

  • stringgird --> excel 변환에서 마지막 합계부분.
stringgrid에서 excel로 자료를 넘기는 부분입니다. 마지막 합계 부분은 richedit로 되어 있는데 초기의 이월자료는 그냥 셀을 지정해서 excel로 넘겼는데 마지막 합계 부분의

richedit는 어떤 식으로 excel로 넘겨야할지 감이 잡히질 않습니다.



워낙 초보라 아래코딩도 간신히 했습니다. 조회되는 데이타의 양에 따라 합계부분의

위치가 틀려질것 같은데...

아마도 데이타의 마지막 행에 1을 더한 부분에 합계가 들어가야할텐데....

제가 코딩한 소스도 함께 올립니다.



좀 부탁드립니다.



- 좀 무식한 코딩이긴 합니다..... ----



procedure TAJ2010F.BitBtn2Click(Sender: TObject);

var

i,j : word;

VExcel : Variant;

begin

statusbar1.panels[1].text := '';



VExcel := createoleobject('Excel.Application');

if VarisEmpty(VExcel) then

begin

StatusBar1.Panels[1].text :='엑셀이 설치되어 있지 않아 실행할 수 없습니다.';

Exit;

end;



VExcel.visible := true;

VExcel.workbooks.add;

VExcel.workbooks[1].sheets[1].name := '총계정원장';



for i := 0 to stringgrid1.rowcount - 1 do

for j := 0 to stringgrid1.colcount - 1 do

begin

Vexcel.Range['a3:h3'].interior.Color := RGB(192,192,192); // color 처리

VExcel.Cells[i+2,j+2].Font.Name := '굴림체';

VExcel.cells[i+2,j+2].font.size := 10;

VExcel.Range['A1'].Value := '총계정원장'; // title

VExcel.Range['f2'].Value := '이월누계'; // 전월합계

VExcel.Range['g2'].Value := btotd.Lines[0]; // 전월합계

VExcel.Range['h2'].Value := btotc.Lines[0]; // 전월합계

if j=0 then

VExcel.cells[i+3,j+1]:= '''' + stringgrid1.cells[j,i]

else

VExcel.cells[i+3,j+1]:= stringgrid1.cells[j,i];

end;



end;



0  COMMENTS