如何扫描所有工作表单元格

我想用win32com for python来扫描excel表格单元win32com ,并保存单元格位置及其值的字典。

有没有一种有效的方式来扫描工作表? 意思是扫描尽可能less的单元,但仍然用数据/值扫描所有的单元,忽略远离的单元。

我曾经使用过的openpyxl ,它有一个self.max_rowself.max_column每个工作表的参数。 有没有类似的参数或计算它们的好方法?

如何尝试这样的事情…

 end_row = ActiveSheet.UsedRange.Rows.Count end_column = ActiveSheet.UsedRange.Columns.Count 

如果你有一个非常大的范围你打算通过,我会build议尝试通过一次把所有的单元格到Python的范围来回COM层的来回。

我logging了一段时间我在这里遇到的一些事情。

从我之前的写作主要提示:

 # Take many values at once rather than reading each individually end_num = sh.UsedRange.Rows.Count col_a = sh.Range(xl.Cells(1, 1), xl.Cells(end_num, 1)).Value # The magic numbers to turn calculation on and off xlCalculationManual = -4135 xlCalculationAutomatic = -4105 # Turn calculation to manual xl.Calculation = xlCalculationManual # Turn screen updating off xl.ScreenUpdating = False # RUN YOUR CODE HERE # # Turn things back on when done xl.ScreenUpdating = True xl.Calculation = xlCalculationAutomatic