I would think ws.iter_rows(min_row=…, max_row=…, min_col=…, max_col=… values_only=True) is all you need. This will read the rows directly from the XML and return only the data in tuples. Even for a huge worksheet this will not require a lot of memory. As it's a generator you can easily wrap it to give you as many rows as you need – this is preferable to looping over the worksheet multiple times – but you'll have an overhead of calling the iterator.
How you do it depends on how much memory you have: what are your limits?
Charlie
--
Charlie Clark
Managing Director
Clark Consulting & Research
German Office
Sengelsweg 34
Düsseldorf
D- 40489
Tel: +49-203-3925-0390
Mobile: +49-178-782-6226