我刚接触python-excel自动化。我做了一个从python运行的脚本,但是当我试图从excel运行它时,我得到了一些错误。
脚本类似于:
sheet1=pd.read_excel("xxx.xlsx",sheet_name="A", header=1,usecols=["d","e","f","m","n"]))
sheet1.dropna(subset=["f"], inplace=True)
sheet1=sheet1[~sheet1["f"].astype(str).str.startswith("A")]
column_name=list(sheet1["f"].unique())
def fct1():
for index in range(len(column_name)):
for element in sheet1.index:
*do some things and append the results in a dictionary*
ws = xw.Book('xxx.xlsx').sheets['B']
for i in range(len(column_name)):
*write the results*在VBA中,我刚刚添加了:
Sub test()
RunPython "import RoomData; RoomData.fct1()"
End Sub你能帮我解决这个问题吗?
发布于 2021-08-09 16:01:35
我发现了一个变通方法(不确定这是否是最好的选择)-我用另一种方法创建了数据帧,在我丢弃了不重要的列后,其余的都是一样的:
sheet = xw.Book('xxx.xlsm').sheets['A'].range((3, 4), (1000, 12)).value
sheet1 = pd.DataFrame(sheet, columns=xw.Book('xxx.xlsm').sheets['A'].range((2,4), (2, 12)).value)
sheet1.pop('D')
sheet1.pop('E')
sheet1.pop('H')
sheet1.pop('G')
sheet1.dropna(subset=["f"], inplace=True) # delete lines where no info on "Tableau"
sheet1 = sheet1[~sheet1["f"].astype(str).str.startswith("A")]
column_name = list(sheet1["f"].unique())
def fct1():...
def fct2():...
def fct3():...不过,如果有人有其他的想法,请不要犹豫:)
https://stackoverflow.com/questions/68710060
复制相似问题