REM ***** BASIC ***** 'Code for LXF94 Sub Main 'Dim oDoc as Object 'oDoc = open_csv_file _ ' ("http://download.finance.yahoo.com/d/quotes.csv?s=MSF.L&f=sd1l1&e=.csv") download_stock_price(array("MSF.L","NOVL")) End Sub Sub download_stock_price(companySymbols) Dim oDoc as Object Dim cSymbols as String, oUrl as String cSymbols = join(companySymbols, "&s=") oUrl = "http://download.finance.yahoo.com/d/quotes.csv?s=" _ & cSymbols & "&f=sl1d1&e=.csv" oDoc = open_csv_file(oUrl) insert_chart (oDoc, "My Shares") save_file_as_ods(oDoc, "/tmp", "test_lxf94") oDoc.close(true) End Sub Function open_csv_file (url as String, Optional show_form as Boolean) as Object Dim oProperty(1) as New com.sun.star.beans.PropertyValue if ismissing(show_form) then show_form = False end if oProperty(0).Name = "FilterOptions" oProperty(0).Value = "44" oProperty(1).Name = "Hidden" if (show_form) then oProperty(1).Value = False else oProperty(1).Value = True end if open_csv_file = starDeskTop.loadComponentFromUrl(url, "_blank", 0, oProperty()) End Function Sub save_file_as_ods(doc as Object, directory as String, prefix as String) Dim oUrl as String oUrl = convertToUrl(directory & "/" & prefix & ".ods") doc.storeAsUrl(oUrl,Array()) End Sub Sub insert_chart (doc as Object, cTitle as String) Dim oSheet as Object, oCell as Object Dim oCellRangeAddress(1) as New com.sun.star.table.CellRangeAddress Dim oRange as Object Dim oRangeAddress as Object Dim oRect as New com.sun.star.awt.Rectangle Dim oCharts as Object Dim oChart as Object oSheet = doc.Sheets(0) oSheet.getRows.insertByIndex(0,1) oCell = oSheet.getCellByPosition(1,0) oCell.String = "Share Value" r = 1 oCell = oSheet.getCellByPosition(0,r) while oCell.String <> "" r = r + 1 oCell = oSheet.getCellByPosition(0,r) wend oRange = oSheet.getCellRangeByPosition(0,0,1,r - 1) oRangeAddress = oRange.getRangeAddress 'Set X axis oCellRangeAddress(0).Sheet = oRangeAddress.Sheet oCellRangeAddress(0).startColumn = oRangeAddress.endColumn oCellRangeAddress(0).endColumn = oRangeAddress.endColumn oCellRangeAddress(0).startRow = oRangeAddress.startRow oCellRangeAddress(0).endRow = oRangeAddress.endRow 'Set Y axis oCellRangeAddress(1).Sheet = oRangeAddress.Sheet oCellRangeAddress(1).startColumn = oRangeAddress.startColumn oCellRangeAddress(1).endColumn = oRangeAddress.startColumn oCellRangeAddress(1).startRow = oRangeAddress.startRow oCellRangeAddress(1).endRow = oRangeAddress.endRow oRect.Width= 20000 oRect.Height = 10000 oCharts = oSheet.Charts oCharts.addNewByName(cTitle, oRect, oCellRangeAddress(),TRUE,TRUE) oChart = oCharts.getByName(cTitle).embeddedObject oChart.HasMainTitle = True oChart.Title.String = cTitle oChart.diagram.HasXAxisTitle = True oChart.diagram.XAxisTitle.String = "Company Symbol" oChart.diagram.HasYAxisTitle = True oChart.diagram.YAxisTitle.String = "Closing Value" 'oChart.diagram = oChart.createInstance("com.sun.star.chart.DonutDiagram") End Sub