xlrd позволяет легко узнать, что является последним столбцом.
Есть ли простой способ использовать win32com?
Я пытался использовать ws.UsedRange.Rows.Count, но это не дает правильного ответа.
Это определено для подсчета строк в используемом диапазоне (который может не начинаться с ячейки A1). Вам нужно количество столбцов в таблице .
A1
Попробуйте что-то вроде этого:
used = ws.UsedRange nrows = used.Row + used.Rows.Count - 1 ncols = used.Column + used.Columns.Count - 1