如何扫描所有工作表单元格
我想用win32com
for python
来扫描excel表格单元win32com
,并保存单元格位置及其值的字典。
有没有一种有效的方式来扫描工作表? 意思是扫描尽可能less的单元,但仍然用数据/值扫描所有的单元,忽略远离的单元。
我曾经使用过的openpyxl
,它有一个self.max_row
和self.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