我对Python很陌生,这是我在python中的第一个项目。
我正在做的是... 1.从Sql服务器中检索数据 2.将数据放入预定义的excel模板(特定工作表)中。 3.如果此表中有任何数据,则应将其替换,并且仅列名应保留在表中。 3. excel模板中的另一个工作表包含第2步中数据的数据透视表示。 4.我需要用sheet1中的新数据刷新这个枢轴。 5. sheet1中的行数不能更改,具体取决于数据库中的数据。
我对Step1很好,但是无法执行excel操作。
我尝试过openpyxl,但是对此了解不多。 https://openpyxl.readthedocs.io/en/stable/
代码:
from openpyxl import load_workbook
wb2 = load_workbook('CnA_Rec.xlsx')
print (wb2.sheetnames)
rawsheet = wb2.get_sheet_by_name('RawData')
print (rawsheet.cell_range)
上面的代码有错误:
AttributeError: 'Worksheet' object has no attribute 'cell_range'
我可以访问单个单元格,但不能访问范围。 我需要选择当前范围并将其替换为新数据。
参考链接:https://openpyxl.readthedocs.io/en/stable/api/openpyxl.worksheet.cell_range.html
任何人都可以指出我的一些在线示例以获取相同或任何示例代码。
答案 0 :(得分:0)
因此,然后使用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')