pandas - 熊猫,将单元格从工作簿复制到另一个
问题描述
我在从 Excel 工作簿复制单元格并将其作为值粘贴到另一个工作簿时遇到问题。我收到一条错误rowSelected.append(sheet.cell(row = i, column = j).value)
消息AttributeError: 'str' object has no attribute 'cell'
有人能帮忙吗?
import openpyxl
#Prepare the spreadsheets to copy from and paste too.
#File to be copied
wb = openpyxl.load_workbook(r"") #Add file name
sheet = wb["BusinessDetails"] #Add Sheet name
#File to be pasted into
template = openpyxl.load_workbook(r"") #Add file name
temp_sheet = template["Sheet1"] #Add Sheet name
#Copy range of cells as a nested list
#Takes: start cell, end cell, and sheet you want to copy from.
def copyRange(startCol, startRow, endCol, endRow, sheet):
rangeSelected = []
#Loops through selected Rows
for i in range(startRow,endRow + 1,1):
#Appends the row to a RowSelected list
rowSelected = []
for j in range(startCol,endCol+1,1):
rowSelected.append(sheet.cell(row = i, column = j).value)
#Adds the RowSelected List and nests inside the rangeSelected
rangeSelected.append(rowSelected)
return rangeSelected
#Paste range
#Paste data from copyRange into template sheet
def pasteRange(startCol, startRow, endCol, endRow, sheetReceiving,copiedData):
countRow = 0
for i in range(startRow,endRow+1,1):
countCol = 0
for j in range(startCol,endCol+1,1):
sheetReceiving.cell(row = i, column = j).value = copiedData[countRow][countCol]
countCol += 1
countRow += 1
def createData():
print("Processing...")
selectedRange = copyRange(1,2,4,14,sheet) #Change the 4 number values
pastingRange = pasteRange(1,3,4,15,temp_sheet,selectedRange) #Change the 4 number values
#You can save the template as another file to create a new file here too.s
template.save(r"")
print("Range copied and pasted!")
copyRange(2,4,30,78,"BusinessDetails")
pasteRange(2,4,30,78,"Sheet1")
解决方案
肯定是:
copyRange(2,4,30,78,sheet)
pasteRange(2,4,30,78,temp_sheet)
即您需要将工作表对象而不是工作表名称传递给您的函数。
根据评论更新:
rangeSelected = copyRange(2,4,30,78,sheet)
pasteRange(2,4,30,78,temp_sheet, rangeSelected)
推荐阅读
- c# - 在 C# 中使用用户名/密码身份验证连接到 OPC UA 服务器
- python - 如何通过 Modbus TCP 使用“struct.pack”类型发送?
- generics - Kotlin 通用传递
- javascript - 将数字 1 - 100 打印到屏幕上,在 li 开头添加了额外的空白列表元素
- computer-vision - 使用 g2o 库进行捆绑调整。如何验证?
- php - 如何将数组值与子数组值进行比较
- c++ - 如何旋转 gtk 树视图以水平显示列?
- arduino - 带有 MQTT 代理的 Arduino Uno
- c - Visual C 结构数组 - 表达式必须有一个常量值
- javascript - 将可拖动元素悬停在其上时,从放置元素获取继续坐标