아래는 어느분이 올려놓은 소스입니다. 중간은 생략하고 차트부분만 테스트를 하기위해 작성했습니다.
잘작동이되는가 싶던데... 문제가 발생하네요.
ChartWizard를 호출하는부분에서 차트의 타입(아래에는 chType값)이 작동을 안하는게 있습니다.
Pie형태나 3DLine은 되는데 문제는 xlLine으로 설정하는 경우. 이것이 엑셀에 기본옵션으로 xlLine이 설정된 경우에는 그것으로 xlLineMarkers 로 설정된경우에는 그걸로 나오네요.
그리고... xlLineMarkers 타입은 아예실행중에 에러가나네요. Excep2000.pas에는 ChartType으로 지정이 되어있는데 적용이 안되는 이유를 모르겠네요.
문제점에 대해 도움을 주실분 있으시면 정말 감사하겠습니다.
procedure TForm1.Button1Click(Sender: TObject);
var
LCID,i : Integer;
Sheet, Selection : Variant;
Format : OleVariant;
//차트용
ChObj: ChartObject;
SheetType: OleVariant;
Rnge, ChType: OleVariant;
Ax: Axis;
begin
excelApplication1.Connect; //엑셀을가동한다.(InVisible 상태)
ExcelWorkbook1.connectto(excelApplication1.workbooks.add(TOleEnum(xlWBATWorksheet),
LCID));
ExcelWorksheet1.connectto(excelWorkbook1.worksheets.item['Sheet1'] as _worksheet );
//워크시트 이름 변경
excelWorksheet1.Name := '날 죽여라';
excelApplication1.DisplayAlerts[LCID] := False;
excelApplication1.Visible[LCID] := true;
Sheet := ExcelApplication1.WorkBooks[ExcelApplication1.Workbooks.Count].WorkSheets[excelWorkbook1.Worksheets.Count];
Sheet.Cells[1,1] := '엑셀서식';
//차트용 오브젝트 생성
ChObj := (excelWorksheet1.ChartObjects(EmptyParam,lcid) as ChartObjects).Add(600, 10, 400, 250);
excelChart1.ConnectTo(ChObj.Chart as _Chart);
//데이터 범위(데이터뿐만 아니라 가로축 세로축에 찍힐주석값까지 포함)
Rnge := excelWorksheet1.Range['E2','H8']; // thedata range, including titles
//차트타입
ChType := xlLine;
excelChart1.ChartWizard(Rnge, ChType, EmptyParam,xlColumns, 1, 1, False,
excelWorksheet1.Range['A1','A1'].Text, // The chart title
'번호', '점수', EmptyParam, lcid);
Ax := excelChart1.Axes(xlValue, xlPrimary, lcid) as Axis;
Ax.AxisTitle.Font.FontStyle := '굴림체';
//자동 컬럼 폭 맞춤
excelWorksheet1.Columns.AutoFit;
end;
end.