我得到了一个错误,似乎...错误。因为当然工作表对象有set_column()作为一个函数,它在文档中。我可能做了一些愚蠢的事情,比如删除括号。
下面是错误:
Traceback (most recent call last):
File "scrubaddresses.py", line 137, in <module>
run()
File "scrubaddresses.py", line 118, in run
format_col_width(worksheet)
File "scrubaddresses.py", line 24, in auto_format_cell_width
ws.set_column('B:C', 20)
AttributeError: 'Worksheet' object has no attribute 'set_column'
这是我可笑的导入。配置是一些常量,控制器有一些帮助函数。
from smartystreets_python_sdk import StaticCredentials, exceptions, Batch, ClientBuilder
from smartystreets_python_sdk.us_street import Lookup as StreetLookup
from pathlib import Path
import pandas as pd
import numpy as np
import config
from controller import getExcel, clean
相关函数:
def format_col_width(ws):
ws.set_column('B:C', 20)
ws.set_column('D', 1)
ws.set_column('E', 20)
正在传递的ws来自何处:
df1 = df.replace(np.nan, '', regex=True)
print(df1)
df1.to_excel(writer, sheet, index = False, engine='xlsxwriter')
worksheet = writer.sheets[sheet]
format_col_width(worksheet)
我忘记导入什么了吗?Xlsxwriter已安装。
4条答案
按热度按时间lrpiutwd1#
它给出的理由是:
AttributeError: 'Worksheet' object has no attribute 'write'
这是因为您没有在PC上安装xlsxwriter。
您可以用途:
它会工作伊萨。
lbsnaicq2#
我也遇到了同样的问题,以下方法对我有效:
6yjfywim3#
单列范围中有一个错误。它们应该是
D:D
而不是D
,因为即使它们相同,该方法也需要开始和结束列。经过这样的修改,代码应该可以工作:
输出:
尝试上面的代码,看看它是否工作。如果它不工作,那么XlsxWriter可能没有安装,Pandas默认为OpenPyXL。
nxagd54h4#