// 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; |
・インターネット上の情報や書籍の内容を一部参考に作成してます。 ・コーディング内容は著作権フリーですが、使用する場合は自己責任にてお願いします。 ・記述内容に問題点や改善点がありましたらこちらまでお願いします。 |