解释下 ws.cell
时间: 2023-09-27 15:11:56 浏览: 27
`ws.cell()` 是 openpyxl 库中用于访问单元格的方法,它可以获取或设置指定单元格的值、样式、公式等属性。这个方法需要传入两个参数,即行号和列号,用来指定要访问的单元格的位置,返回一个 `Cell` 对象,可以通过该对象的属性或方法来访问单元格的值、样式等属性。
例如,`ws.cell(row=1, column=1)` 表示访问第1行第1列的单元格,返回一个 `Cell` 对象,你可以通过该对象的 `value` 属性来获取该单元格的值,例如:`ws.cell(row=1, column=1).value`。
在写入数据时,如果要写入多个单元格,可以使用循环遍历每个单元格并设置其值,例如:
```python
ws.cell(row=1, column=1, value='A1')
ws.cell(row=1, column=2, value='B1')
ws.cell(row=2, column=1, value='A2')
ws.cell(row=2, column=2, value='B2')
```
这样就可以将值'A1'、'B1'、'A2'、'B2' 分别写入到单元格(1,1)、(1,2)、(2,1)、(2,2) 中。
相关问题
wb=openpyxl.Workbook() ws=wb['Sheet'] ws.cell(1,1).value="产地\销地" ws.cell(1,TotalColumn+2).value="产量" ws.cell(TotalRow+2,1).value="销量" ws.cell(TotalRow+2,TotalColumn+2).value=sum(ProductionValue) for i in range(2,TotalRow+2): ws.cell(i, 1).value = ProductionKey[i-2] ws.cell(i,TotalColumn+2).value=ProductionValue[i-2] for j in range(2,TotalColumn+2): ws.cell(1, j).value =SaleKey[j-2] ws.cell(TotalRow+2,j).value=SaleValue[j-2] ws.cell(i,j).value=CostValue[(i-2)*TotalColumn+j-2] wb.save("data.xlsx")
这段代码使用了Python中的openpyxl库来创建一个Excel文档,并向其中写入数据。它创建了一个名为"Sheet"的工作表,并在第一行第一列写入了"产地\销地",在最后一行最后一列写入了所有产量之和(通过sum函数计算得出),然后使用两个for循环遍历所有行和列,将对应的值写入工作表中。其中,ProductionKey和ProductionValue是产地和产量的键值对,SaleKey和SaleValue是销地和销量的键值对,CostValue是一个包含所有成本的列表。最后,使用wb.save()方法保存Excel文档。
TypeError: cell() got an unexpected keyword argument 'row': for i in range(1, src_ws.nrows): cell_value = dst_ws.cell(i, 0).value dst_ws.cell(row=i + 1, column=1).value = cell_value
这个错误提示是在告诉你,`cell()` 方法不支持名为 `row` 的关键字参数。根据你的代码,可能是因为你想要使用的是 `openpyxl` 模块中的 `cell()` 方法,但是这个方法不支持 `row` 参数。
如果你想要获取某个单元格,可以使用工作表对象的 `cell()` 方法,但是它不支持关键字参数。你应该使用位置参数来指定单元格的行号和列号。例如,要获取第一行第一列的单元格,可以这样写:
```
cell_value = dst_ws.cell(1, 1).value
```
如果你想要修改某个单元格的值,也应该使用这种方式来指定单元格的位置。例如,要将第一行第一列的单元格的值设为 `'Hello, world!'`,可以这样写:
```
dst_ws.cell(1, 1, value='Hello, world!')
```
因此,你的代码应该修改为下面这样:
```
for i in range(1, src_ws.nrows):
cell_value = dst_ws.cell(i, 0).value
dst_ws.cell(i + 1, 1, value=cell_value)
```
这样就可以避免使用不支持的关键字参数了。