// uses に "ComObj" を追加して下さい
// TButtonコンポーネントを2つと、TMemoコンポーネントをフォームに貼り付け
//======================================================================
// 機能:Microsoft Excelのデータファイルを作成
//======================================================================
procedure TfmMain.Button1Click(Sender: TObject);
var
ExcelApp, WorkBook, WorkSheet: OleVariant;
ii, jj, nn: integer;
fname: string;
begin
try
ExcelApp := CreateOleObject('Excel.Application');
except
MessageDlg( 'Microsoft Excelがインストールされていません。',
mtError,[mbOk],0 );
Exit;
end;
// WorkBookを新たに作成
WorkBook := ExcelApp.Workbooks.Add;
// WorkBookにWorkSheetを3枚作成
while Workbook.sheets.count < 3 do begin
Workbook.sheets.Add;
end;
// WorkSheet1をアクティブにする
WorkSheet := WorkBook.WorkSheets[1];
// WorkSheet1のシート名を変更
WorkSheet.name := 'シート1';
// WorkSheet1のセルに文字を入力
nn := 0;
for ii:=1 to 5 do begin {Y軸(行)}
for jj:=1 to 10 do begin {X軸(列)}
Worksheet.Cells.Item[ii,jj] := Chr($82)+Chr($A0+nn);
Inc(nn);
end;
end;
for jj:=1 to 10 do begin {列の幅を自動調整}
WorkSheet.Columns[jj].EntireColumn.AutoFit;
end;
// WorkSheet2をアクティブにする
WorkSheet := WorkBook.WorkSheets[2];
// WorkSheet2のシート名を変更
WorkSheet.name := 'シート2';
// WorkSheet2のセル"A1"に文字を入力
WorkSheet.Cells[1,1] := 'xyz';
// WorkSheet3をアクティブにする
WorkSheet := WorkBook.WorkSheets[3];
// WorkSheet3を削除
WorkSheet.Delete;
// Workbookに名前を付けて保存
fname := ExtractFilePath(ParamStr(0))+'test.xls';
WorkBook.SaveAs( fname );
// 後処理
WorkBook.Close;
WorkBook := unAssigned;
WorkSheet := unAssigned;
ExcelApp.Quit;
ExcelApp := unAssigned;
ShowMessage(fname+'に出力しました');
end;
//======================================================================
// 機能:Microsoft Excelのデータファイルを読み込み
//======================================================================
procedure TfmMain.Button2Click(Sender: TObject);
var
ExcelApp, WorkBook, WorkSheet, SheetName: OleVariant;
iRow, iCol: Integer;
Ctmp, ws, fname: string;
begin
try
ExcelApp := CreateOleObject('Excel.Application');
except
MessageDlg( 'Microsoft Excelがインストールされていません。',
mtError,[mbOk],0 );
Exit;
end;
fname := ExtractFilePath(ParamStr(0))+'test.xls';
WorkBook := ExcelApp.WorkBooks.Open(fname, False);
Memo1.Clear;
// 指定したワークシートの内容を読み込む
SheetName := Workbook.Sheets[1];
WorkSheet := WorkBook.WorkSheets[SheetName.Name];
Memo1.Lines.Add( format('[%s]の内容',[SheetName.Name]) );
for iRow:=1 to 5 do begin
Ctmp := '';
for iCol:=1 to 10 do begin
ws := WorkSheet.Cells[iRow,iCol].Text;
Ctmp := Ctmp + ws + ' ';
end;
Memo1.Lines.Add( Ctmp );
end;
Memo1.Lines.Add( '' );
SheetName := Workbook.Sheets[2];
WorkSheet := WorkBook.WorkSheets[SheetName.Name];
Memo1.Lines.Add( format('[%s]の内容',[SheetName.Name]) );
Ctmp := WorkSheet.Cells[1,1].Text;
Memo1.Lines.Add( Ctmp );
// 後処理
WorkBook.Close;
WorkBook := unAssigned;
WorkSheet := unAssigned;
ExcelApp.Quit;
ExcelApp := unAssigned;
end;
|
|
・インターネット上の情報や書籍の内容を一部参考に作成してます。 ・コーディング内容は著作権フリーですが、使用する場合は自己責任にてお願いします。 ・記述内容に問題点や改善点がありましたらこちらまでお願いします。 |