我想使用OpenPyXL搜索一个工作簿,但我遇到了一些问题,我希望有人能帮助我。
以下是一些障碍/待办事项:
我是Python新手,所以有人能为我指明正确的方向吗?示例代码是值得赞赏的,因为我现在所知道的就是在已知的工作簿中搜索已知的工作表名,然后打印数据。我不知道在迭代工作表和单元格时如何包含通配符。
我为显示单元格内容所做的事情:
from openpyxl import load_workbook, worksheet
def main():
#read workbook to get data
wb = load_workbook(filename = 'Book1_test.xlsx', use_iterators = True)
ws = wb.get_sheet_by_name(name = 'Sheet1')
#ws = wb.worksheets
#Iterate through worksheet and print cell contents
for row in ws.iter_rows():
for cell in row:
print cell.value
#Iterate through workbook & print worksheets
#for sheet in wb.worksheets:
# print sheet
if __name__ == '__main__':
main()我能够搜索单元格并从单元格中提取服务器名,但我无法保存电子表格,因为我处于只读模式。当我尝试切换到optimized_write=True时,我得到了错误:
AttributeError:'ReadOnlyCell‘对象没有属性’ReadOnlyCell‘
这是我的密码:
from openpyxl import load_workbook, worksheet, Workbook
def main():
#read workbook to get data
wb = load_workbook(filename = 'Book1_test.xlsx', use_iterators = True)
ws = wb.get_sheet_by_name(name = 'Sheet1')
#ws = wb.worksheets
#Iterate through worksheet and print cell contents
for row in ws.iter_rows():
for cell in row:
cellContent = str(cell.value)
#Scans the first 14 characters of the string for the server name
if cellContent[:14] == '\\\\file-server\\':
#open workbook in write mode?
wb = Workbook(optimized_write=True)
ws = wb.create_sheet()
#update cell content
ws[cell] = '\\\\file-server1\\' + cellContent[14:]
print cellContent[:14]
#save workbooks
wb.save('Book1_test.xlsx')
if __name__ == '__main__':
main()有人知道如何更新单元格内容吗?
发布于 2014-08-11 17:28:58
我认为你不能更新单元格内容。您可以打开要读取的文件,也可以打开要写入的新文件。我认为你必须创建一个新的工作簿,你读的每个单元格,如果你选择不修改它,把它写到你的新工作簿。在您的示例代码中,您正在用wb (用于编写)覆盖wb (用于读取)。从for循环中提取它,为它指定一个不同的名称。
发布于 2014-08-11 19:39:37
你为什么不看文件呢?如果您只是打开没有标志的工作簿,就可以编辑它。
发布于 2016-04-11 19:16:57
您可以更新单元格中的内容。您需要分配一个值:
workBook = load_workbook('example.xlsx')
sheet = workBook.get_sheet_by_name('sheet')
a = sheet.cell(row=i,column=j)
a.value = 'nuevo valor'然后保存:
workBook.save('example.xlsx') https://stackoverflow.com/questions/25247742
复制相似问题