On 2015-05-30 10:30, Justin Thyme wrote: > Is it possible to write a Python program that will start MS Excel, > create a spreadsheet and fill cells A1 to A10 (say) with the data > in a Python array? The answer is surely yes, but is there an > outline of how to do it somewhere?
it depends on how strictly you want to keep your order of operations. You *can* use Windows API calls to automate Excel, instructing it to create a new sheet, then populate the various cells with data. However, this is fragile, Windows-specific, and requires the target to have Excel on their machine. If you're willing to forego your specified ordering and create a file, then open it in Excel, you can use the add-on xlrd/xlwt packages (the former reads, the latter writes) to write XLS files that you can then open in Excel. Finally, if you're going down that route, the *easiest* way is to simply use Python's csv module from the standard library. import csv FILENAME = "out.csv" with open(FILENAME, 'wb') as f: w = csv.writer(f) for item in data: w.writerow([ item, #, "" # optionally add a blank column because # some parsers like csv.Sniffer will notice # the lack of commas and try to find the most # common repeated string ]) You can then launch that file in Excel, or even better, whatever the registered program is: import os, sys, subprocess def open_file(filename): if sys.platform == "win32": os.startfile(filename) else: if sys.platform == "darwin": program = "open" else: program = "xdg-open" subprocess.call([program, filename]) open_file(FILENAME) -tkc -- https://mail.python.org/mailman/listinfo/python-list