【问题标题】:write and read from excel using powerbuilder使用 powerbuilder 从 excel 写入和读取
【发布时间】:2012-11-22 01:16:50
【问题描述】:

使用Powerbuilder“OLE”从excel表写入和读取的任何示例(我需要在excel表文件中写入值并在excel执行其某些功能后读取其他值)

【问题讨论】:

    标签: powerbuilder


    【解决方案1】:

    以下是通过 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 速度很慢。

    【讨论】:

    • @M.Ibrahim:抱歉,我在重构更大示例的代码时错过了这一点。除了用于定义 excel 范围的本地字符串和用作最大行号的未声明的 ll_excel_rows 之外,所有对象都是 oleobject。您可以忽略示例中的 .select.locked 行。我已经更新了我的示例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多