Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何扫描所有工作表单元格_Python_Excel_Win32com - Fatal编程技术网

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

Python 如何扫描所有工作表单元格,python,excel,win32com,Python,Excel,Win32com,我想使用win32com扫描python的excel表格单元格,并保存单元格位置及其值的字典 有没有一种有效的方法来扫描工作表?也就是说,扫描尽可能少的单元格,但仍然扫描所有具有数据/值的单元格,忽略远处的单元格 我以前使用的是openpyxl,它的参数是self.max\u row和self.max\u column。有没有类似的参数或计算它们的好方法?试试这样的方法怎么样 end_row = ActiveSheet.UsedRange.Rows.Count end_column = Acti

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

有没有一种有效的方法来扫描工作表?也就是说,扫描尽可能少的单元格,但仍然扫描所有具有数据/值的单元格,忽略远处的单元格


我以前使用的是
openpyxl
,它的参数是
self.max\u row
self.max\u column
。有没有类似的参数或计算它们的好方法?

试试这样的方法怎么样

end_row = ActiveSheet.UsedRange.Rows.Count
end_column = ActiveSheet.UsedRange.Columns.Count
如果你有一个非常大的范围,你计划通过,我会建议 尝试通过使用 一次将所有单元格转换为Python

我记录了我不久前遇到的一些事情

我先前写作的主要提示:

# 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

我曾经使用openpyxl,它有一个参数
self.max\u row
self.max\u column
。是否有类似的参数或计算它们的好方法?为什么不直接使用
openpyxl
?它不会保留工作簿验证程序和图像。此外,它不支持插入新行,并且在使用
openpyxl
手动添加新行时,很难更新excel公式。我使用了
last\col=xlApp.ActiveCell.SpecialCells(constants.xlLastCell)。Column
last\u row=xlApp.ActiveCell.SpecialCells(constants.xlLastCell).Row用于获取最后一个单元格。我将接受将一系列单元格导入pythonnot的建议。注意,您可以使用我在回答中提到的技术导入常量