1

Powerbuilder「OLE」を使用してExcelシートから読み書きするサンプル(Excelシートファイルに値を書き込み、Excelがその機能の一部を実行した後に他の値を読み取る必要があります)

4

1 に答える 1

3

OLEを介してExcelファイルにアクセスするサンプルを次に示します。

int li_rtn
string ls_range
oleobject lole_excel, lole_workbook, lole_worksheet, lole_range
lole_excel = create oleobject
li_rtn = lole_excel.ConnectToNewObject("excel.application")
if li_rtn <> 0 then
      MessageBox( "Error", 'Error running MS Excel api.')
      destroy lole_Excel
else
  lole_excel.WorkBooks.Open("C:\some_path_to\sample.xls") 

  lole_workbook = lole_excel.application.workbooks(1)
  lole_worksheet = lole_workbook.worksheets(1)

  // Set the cell value
  lole_worksheet.cells(1,11).value = "Some value" //it is cells(line, column)

  //example to work on a range of cells
  ls_range = "A1:F"+string(ll_excel_rows)
  lole_range = lole_worksheet.Range(ls_range)
  lole_range.Select
  lole_range.Locked = True

  // Save
  lole_workbook.save()
  // Quit
  lole_excel.application.quit()
  lole_excel.DisconnectObject()

  destroy lole_Excel
end if

値の読み取りと書き込みは、プロパティを介して簡単に実行できworksheet.cellsます。

唯一の問題は、OLEを介して大量のセルでExcelを駆動するのが遅いことです。

于 2012-06-27T10:45:32.343 に答える