gpt4 book ai didi

php - 如何更新 Excel 数据? (刷新所有查询)

转载 作者:行者123 更新时间:2023-12-04 21:38:58 24 4
gpt4 key购买 nike

我有一个带有一些查询的 Excel xlsm 文件。

目前我每天都打开它,然后单击“数据”选项卡中的“全部刷新”命令。我希望这能自动完成。我用 python 编写了一个脚本(我是 Python 的新手)。

问题是刷新数据并保存Excel文件后,刷新的数据不可见(我知道刷新有效,因为如果我阻止保存并关闭Excel文件,则刷新的数据在文件中可见)

奇怪的是,保存也可以正常工作,因为当我尝试从“配置”修改单元格 B2 时,它被更改了......

问题出在哪里?

import win32com.client
import datetime
from datetime import date, timedelta

yesterday = date.today() - timedelta(1)

office = win32com.client.Dispatch("Excel.Application")
wb = office.Workbooks.Open(r'\\server\CC_source.xlsm')

office.DisplayAlerts = True
office.Visible = True
wb.RefreshAll()

sh = wb.Worksheets("config")
sh.Cells(2,2).Value = wczoraj

wb.Close(True)

也许有人可以推荐另一个脚本?例如,Powershell? php?
还是 Python3 的其他库?

最佳答案

由于您请求了另一个脚本来执行此操作,因此我推荐使用 PowerShell。作为一个简单的测试,我创建了一个 Excel 文档 SheetToRefresh.xlsx,它与一个简单的 xml 文件有数据连接。但是,下面的脚本将适用于 Excel 文档连接到的任何数据源。我已经在我自己的机器上对此进行了测试,数据刷新和保存仍然如预期的那样。

刷新Excel.ps1

#Set the file path (can be a network location)
$filePath = "C:\Scripts\SheetToRefresh.xlsx"

#Create the Excel Object
$excelObj = New-Object -ComObject Excel.Application

#Make Excel visible. Set to $false if you want this done in the background
$excelObj.Visible = $true

#Open the workbook
$workBook = $excelObj.Workbooks.Open($filePath)

#Focus on the top row of the "Data" worksheet
#Note: This is only for visibility, it does not affect the data refresh
$workSheet = $workBook.Sheets.Item("Data")
$workSheet.Select()

#Refresh all data in this workbook
$workBook.RefreshAll()

#Save any changes done by the refresh
$workBook.Save()

#Uncomment this line if you want Excel to close on its own
#$excelObj.Quit()

关于php - 如何更新 Excel 数据? (刷新所有查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23584911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com