델에서 엑셀파일을 불러서 스트링그리드에 뿌려주는데 엑셀파일내에 sheet들이 한글명으로 여러개가 있을 때 sheet명을 선택하여 특정 sheet를 그리드안에 뿌리려고 하는데 지금은 exSheet := ExcelBook.WorkSheets.Item[2];
위 처럼 숫자로 선택하여 뿌려주는데 미리 몇개의 sheet가 있고 있는 sheet의 이름들을
나열하여 선택하여 선택한 sheet만 화면에 보여줄 수 없는지 조언 부탁합니다.
그리고 sheet를 선택하여 화면에 뿌려주면서 특정 cell에 내용이 없으면 skip하도록 하였는데 space로 나 trim을 사용하여도 내용은 없는데 check가 안되는데 혹시 이유를 아시는 분은 더불어 조언 부탁드립니다.
1.자료실인가 팁에 있던 자료인데 이중에 보니 Worksheets.Count 도 있고 해당 명칭도 가져올수 있네요.
참조하시면 될듯.
2. 1번에서 카운트와 이름가져오시면 그걸로 엑셀 오픈후에 화면뿌리기전 구현하심 될테고..
3. 은 불확실하지만 엑셀자료에서 셀형식이 텍스트가 아닌 일반 또는 숫자에 따라 영향이 틀려집니다.
또한 VartoStr이나 Length등으로 체크하심 될것 같네요.
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] := '엑셀서식';