Tel*_*der 5 python excel openpyxl
我想使用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()
Run Code Online (Sandbox Code Playgroud)
-----------------------更新-------------------------
我能够搜索单元格并从单元格中提取服务器名称,但是我无法保存电子表格,因为我处于只读模式.当我尝试切换到optimized_write = True时,我收到错误:
AttributeError:'ReadOnlyCell'对象没有属性'upper'
这是我的代码:
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()
Run Code Online (Sandbox Code Playgroud)
有谁知道如何更新单元格内容?
小智 2
我认为您无法更新单元格内容。您可以打开一个文件进行读取,或打开一个新文件进行写入。我认为您必须创建一个新的工作簿,并且您读取的每个单元格,如果您选择不修改它,请将其写出到您的新工作簿中。在示例代码中,您将使用 wb(用于写入)覆盖 wb(用于读取)。将其从 for 循环中拉出,为其指定一个不同的名称。
| 归档时间: |
|
| 查看次数: |
25560 次 |
| 最近记录: |