【发布时间】:2012-11-22 01:16:50
【问题描述】:
使用Powerbuilder“OLE”从excel表写入和读取的任何示例(我需要在excel表文件中写入值并在excel执行其某些功能后读取其他值)
【问题讨论】:
标签: powerbuilder
使用Powerbuilder“OLE”从excel表写入和读取的任何示例(我需要在excel表文件中写入值并在excel执行其某些功能后读取其他值)
【问题讨论】:
标签: powerbuilder
以下是通过 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 速度很慢。
【讨论】:
ll_excel_rows 之外,所有对象都是 oleobject。您可以忽略示例中的 .select 和 .locked 行。我已经更新了我的示例