Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中编辑Excel(xlsx和xlsm)_Python_Excel_Python 3.x_Openpyxl - Fatal编程技术网

如何在python中编辑Excel(xlsx和xlsm)

如何在python中编辑Excel(xlsx和xlsm),python,excel,python-3.x,openpyxl,Python,Excel,Python 3.x,Openpyxl,我对Python非常陌生,这是我在Python中的第一个项目 我正在做的是。。。 1.已从Sql server检索数据 2.将数据放入预定义的excel模板(特定工作表)中。 3.如果此工作表中有任何数据,则应将其替换,并且工作表中只应保留列名。 3.excel模板中的另一个工作表包含步骤2中数据的透视表示。 4.我需要使用sheet1中的新数据刷新此轴。 5.根据数据库中的数据,无法更改sheet1中的行数 我对步骤1很满意,但无法执行excel操作 我试过openpyxl,但不能很好地理解它

我对Python非常陌生,这是我在Python中的第一个项目

我正在做的是。。。 1.已从Sql server检索数据 2.将数据放入预定义的excel模板(特定工作表)中。 3.如果此工作表中有任何数据,则应将其替换,并且工作表中只应保留列名。 3.excel模板中的另一个工作表包含步骤2中数据的透视表示。 4.我需要使用sheet1中的新数据刷新此轴。 5.根据数据库中的数据,无法更改sheet1中的行数

我对步骤1很满意,但无法执行excel操作

我试过openpyxl,但不能很好地理解它。

代码:

上述代码错误:

AttributeError: 'Worksheet' object has no attribute 'cell_range'
我可以访问单个单元格,但不能访问范围。 我需要选择当前范围并将其替换为新数据

参考链接:


任何人都可以为我指出一些相同的在线示例,或者这方面的任何示例代码。

那么,让我们用openpyxl来实现它吧。你的问题在哪里?这是一个非常基本的开始。我们可以在此过程中更改此脚本

import openpyxl

wb = openpyxl.load_workbook('hello_world.xlsx')
# do magic with openpyxl here and save
ws = wb.worksheets[0]
ws.cell(row=1, column=3).value = 'Hello'   # example
ws.cell(row=2, column=3).value = 'World'   # example

for i in range(2,20):
    ws.cell(row=i,column=1).value = 'Row:' + str(i)

data = [ws.cell(row=i,column=1).value for i in range(1,11)]
print(data)

wb.save('hello_world.xlsx')

这有用吗?xlsxwriter仅适用于新文件。它不支持编辑现有的。如果我的理解有误,请告诉我……哦,是的,你是对的。其他模块呢?你测试过了吗?我试过openpyxl。这似乎很有希望,但找不到任何这样的例子。你必须使用Python吗?Autoit能够非常轻松地完成您的任务。谢谢。。。我能够访问/更新单个单元格。我面临的问题与细胞范围。用我的代码更新了问题。
import openpyxl

wb = openpyxl.load_workbook('hello_world.xlsx')
# do magic with openpyxl here and save
ws = wb.worksheets[0]
ws.cell(row=1, column=3).value = 'Hello'   # example
ws.cell(row=2, column=3).value = 'World'   # example

for i in range(2,20):
    ws.cell(row=i,column=1).value = 'Row:' + str(i)

data = [ws.cell(row=i,column=1).value for i in range(1,11)]
print(data)

wb.save('hello_world.xlsx')