Suppose I have an Excel 2013 file already open (say XYZ.xlsx) - this file gets some data via a DDE link. Suppose I want to read certain cells (say A1:B3) from a worksheet (say Sheet1). How can I do it in Python 3 (I am using Python 3.4.2.4 / Winpython installation)?
I found the openpyxl package, but I couldn't understand how to make it read an active open workbook?
解决方案
I am not 100% sure if this solution works with DDE (is the file being written to disk somewhere?)
I recommend using xlrd (https://github.com/python-excel/xlrd). I personally installed it via pip. Then to simply read A1:B3 do as such (ripped off the docs):
from xlrd import open_workbook
wb = open_workbook('spreadsheet.xlsx')
for s in wb.sheets():
print('Sheet:',s.name) # you can check for the sheet name here if you want
for row in range(2): #the first 2 rows (A and B) (use s.nrows for all)
values = []
for col in range(3): #the first 3 columns (use s.ncols for all)
values.append(str(s.cell(row,col).value))
print(','.join(values))