我想创建一个快速脚本,从标准化表单(word 文档/docx)中提取数据并将其传输到 Excel 工作表中,并附上一张进行一些计算的工作表。
一切都运行得很好,除了一个例外:
我希望能够过滤特定项目编号、用户首字母或其他数据点的结果,但是当我在 Excel 工作表上添加过滤器时,每当我从 Python 运行它时,我都会收到“命名冲突”错误消息,并且必须为“_FilterDatabase”选择一个新名称 - 当我这样做时,过滤器消失了。
如果我不这样做,脚本就会崩溃。
我这样打开工作表:
import win32com.client as win32
def openExcel():
xl = win32.gencache.EnsureDispatch('Excel.Application')
wb = xl.Workbooks.Open(path+"\\"+'Analysis.xlsx')
ws = wb.Sheets(1)
xl.Visible = True
return ws
然后我将数据中包含的数据点传递到Excel
def print2Excel(data, ws):
const = win32.constants
ws.Range("A2:H2").Insert(const.xlShiftDown, const.xlFormatFromRightOrBelow)
ws.Cells(2,1).Value = data["datapoint"]
...
即使我事后删除过滤器,这个问题仍然存在。一旦 Excel 工作表被过滤一次,错误就会发生,直到时间结束。到目前为止唯一的出路是git 重置/签出Excel。
我看不到您应用过滤器的位置,但在应用过滤器之前,您是否尝试过将 AutoFilterMode 设置为 False,然后添加过滤器?例如
sh_data.Rows(1).AutoFilter(Field=1, Criteria1='B')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)