def executePopulateDataSimple( msg: MessageInfo, wsHandler: tornado.websocket.WebSocketHandler): context = excel.RequestContext() context.customRequestExecutor = WebSocketRequestExecutor( msg.Id, wsHandler) exceldemolib.ExcelDemoLib.populateDataSmall(context) EchoSocketHandler.sendExecuteAtServerResultForRequestMessage( msg, wsHandler)
def executeCode(msg: MessageInfo, wsHandler: tornado.websocket.WebSocketHandler): context = excel.RequestContext() context.customRequestExecutor = WebSocketRequestExecutor( msg.Id, wsHandler) # context.executionMode = runtime.RequestExecutionMode.instantSync exec(msg.Body) context.sync() EchoSocketHandler.sendExecuteAtServerResultForRequestMessage( msg, wsHandler)
def perfTest(): rowCount = 100 colCount = 20 startTime = datetime.datetime.utcnow() for row in range(rowCount): for col in range(colCount): ctx = excel.RequestContext() r = ctx.workbook.worksheets.getItem("Sheet1").getCell( row, col) r.values = (row + 1) * (col + 1) ctx.sync() endTime = datetime.datetime.utcnow() diff = endTime - startTime return diff.seconds * 1000 + diff.microseconds / 1000
if __name__ == "__main__": #copy file print("Setup demo") shutil.copyfile("blank.xlsx", "demo.xlsx") shutil.copyfile("blank.docx", "demo.docx") os.startfile("demo.xlsx") os.startfile("demo.docx") time.sleep(30) print("Start demo") #set context to excel requestUrlAndHeaders = runtime.RequestUrlAndHeaderInfo() # requestUrlAndHeaders.url = "http://localhost:8052"; requestUrlAndHeaders.url = "pipe://./excel/_api" runtime.ClientRequestContext.defaultRequestUrlAndHeaders = requestUrlAndHeaders context = excel.RequestContext() print("Clear workbook") exceldemolib.ExcelDemoLib.clearWorkbook(context) print("Populating data") exceldemolib.ExcelDemoLib.populateData(context) print("Populated data") exceldemolib.ExcelDemoLib.analyzeData(context) print("Analyzed data") imageBase64 = exceldemolib.ExcelDemoLib.getChartImage(context) runtime.ClientRequestContext.defaultRequestUrlAndHeaders = None # switch context to word requestUrlAndHeaders = runtime.RequestUrlAndHeaderInfo() # requestUrlAndHeaders.url = "http://localhost:8054"; requestUrlAndHeaders.url = "pipe://./word/_api" runtime.ClientRequestContext.defaultRequestUrlAndHeaders = requestUrlAndHeaders
import runtime import excel context = excel.RequestContext("http://localhost:8052") context.executionMode = runtime.RequestExecutionMode.instantSync