根据xlsx表格中每行的E列,M列,S列的值组合成新的值,生成为W列的新值,python完整代码,使用openpyxl
时间: 2023-02-08 14:58:07 浏览: 103
首先,你需要安装 openpyxl 库,然后你可以使用以下代码来解决你的问题:
```python
import openpyxl
# 打开 xlsx 文件
wb = openpyxl.load_workbook('文件名.xlsx')
# 选择表单
sheet = wb['表单名']
# 遍历每一行
for row in sheet.iter_rows(min_row=2, max_col=4, max_row=sheet.max_row):
# 获取 E 列的值
e = row[4].value
# 获取 M 列的值
m = row[12].value
# 获取 S 列的值
s = row[19].value
# 组合新的值
w = e + m + s
# 在 W 列写入新的值
row[23].value = w
# 保存修改后的 xlsx 文件
wb.save('新文件名.xlsx')
```
注意:
- E 列、M 列、S 列、W 列的下标都是从 0 开始的。
- E 列的下标为 4,M 列的下标为 12,S 列的下标为 19,W 列的下标为 23。
- min_row 参数代表遍历的最小行数,max_col 参数代表遍历的最大列数,max_row 参数代表遍历的最大行数。
- 如果你想要遍历所有行,可以将 min_row 和 max_row 设置为 2 和 sheet.max_row,这样可以遍历从第 2 行开始到最后一行的所有行。
相关问题
根据xlsx表格中E列,M列,S列的值组合成新的值,生成为W列的新值,python代码
您好,我可以为您提供一种可行的 Python 代码解决方案。
在这里我假设您已经成功地使用了 Python 的 openpyxl 库读取了 xlsx 表格,并且已经获得了该表格的工作簿对象。下面是示例代码:
```
from openpyxl import Workbook
# 假设表格的工作簿对象已经命名为 wb
# 假设已经获取了 E 列、M 列、S 列的值,并存储在 e_values、m_values、s_values 列表中
# 假设 E 列、M 列、S 列的值都已经按照行的顺序存储
# 获取表格的第一个工作表
ws = wb.worksheets[0]
# 从第一行开始,遍历所有行
for i in range(1, ws.max_row + 1):
# 获取 E 列、M 列、S 列的值
e = e_values[i-1]
m = m_values[i-1]
s = s_values[i-1]
# 组合新的值
w = e + m + s
# 将新的值写入 W 列
ws.cell(row=i, column=23).value = w
# 保存工作簿
wb.save('output.xlsx')
```
希望这些信息能帮到您。
根据xlsx表格中E列,M列,S列的值组合成新的值,生成为W列的新值,python完整代码
### 回答1:
首先,你需要安装 xlrd 库,这样才能读取 xlsx 文件。你可以使用 pip 命令来安装 xlrd 库:
```
pip install xlrd
```
然后,你可以使用下面的代码来读取 xlsx 文件中的 E、M、S 列的值:
```python
import xlrd
# 打开文件
workbook = xlrd.open_workbook('文件名.xlsx')
# 根据 sheet 索引或者名称获取 sheet 内容
sheet1 = workbook.sheet_by_index(0) # sheet 索引从 0 开始
# 获取行数和列数
nrows = sheet1.nrows
ncols = sheet1.ncols
# 获取数据
for i in range(1, nrows): # 第一行是标题,所以从第二行开始
row_values = sheet1.row_values(i)
e = row_values[4] # E 列的值
m = row_values[12] # M 列的值
s = row_values[18] # S 列的值
```
最后,你可以使用 E、M、S 列的值来生成 W 列的新值,然后将新值写入 W 列中。你可以使用 xlwt 库来写入 xlsx 文件。
你可以使用下面的代码来安装 xlwt 库:
```
pip install xlwt
```
然后,你可以使用下面的代码来写入 xlsx 文件:
```python
import xlwt
# 创建 workbook 和 sheet
workbook = xlwt.Workbook()
sheet1 = workbook.add_sheet('sheet1')
# 写入数据
sheet1.write(0, 0, 'W') # 写入标题
for i in range(1, nrows): # 从第二行开始写入数据
e = row_values[4]
m = row
### 回答2:
根据您提供的要求,以下是一个Python的完整代码示例:
```python
import openpyxl
# 打开xlsx文件
wb = openpyxl.load_workbook('data.xlsx')
# 选择活动工作表
sheet = wb.active
# 获取行数
rows = sheet.max_row
# 根据E列、M列和S列的值组合成新的值,生成W列的新值
for row in range(2, rows+1):
e_value = sheet.cell(row=row, column=5).value
m_value = sheet.cell(row=row, column=13).value
s_value = sheet.cell(row=row, column=19).value
# 组合新值
new_value = str(e_value) + str(m_value) + str(s_value)
# 将新值写入W列
sheet.cell(row=row, column=23).value = new_value
# 保存修改后的xlsx文件
wb.save('data_modified.xlsx')
```
该代码通过openpyxl库读取并修改一个名为"data.xlsx"的表格文件。在代码中,我们选择活动工作表(sheet),并通过循环遍历每一行。然后,通过使用`cell()`函数从E列、M列和S列中获取对应的值,将它们组合成新的值,并将新值写入到W列中。
最后,我们使用`save()`函数将修改后的数据保存到一个新的文件"data_modified.xlsx"中。
请注意,在代码执行前,您需要将表格文件"data.xlsx"与代码文件放在同一目录下,并安装openpyxl库(可以通过运行`pip install openpyxl`来安装)。
### 回答3:
下面是用Python编写的代码,根据xlsx表格中E列,M列,S列的值组合成新的值,并生成W列的新值:
``` python
import pandas as pd
# 读取xlsx表格
data = pd.read_excel('your_file.xlsx')
# 获取E列,M列和S列的值
E_values = data['E']
M_values = data['M']
S_values = data['S']
# 根据E列,M列和S列的值组合成新的值
W_values = []
for i in range(len(data)):
new_value = str(E_values[i]) + str(M_values[i]) + str(S_values[i])
W_values.append(new_value)
# 将新的值赋给W列
data['W'] = W_values
# 保存修改后的xlsx表格
data.to_excel('your_modified_file.xlsx', index=False)
```
请将代码中的`your_file.xlsx`替换为要处理的xlsx文件的路径和名称,然后运行代码即可生成新的带有W列的表格,保存为`your_modified_file.xlsx`。
阅读全文