提取EXCEL到XLS中,用xlwt按照不同列名设置列宽
时间: 2024-03-15 14:46:59 浏览: 130
可以调整列宽的表格
要将Excel中的数据提取到XLS文件中,并按照不同列名设置列宽,可以使用xlrd和xlwt库来读取Excel文件并写入到XLS文件中。以下是一个示例代码:
```python
import xlrd
import xlwt
# 打开Excel文件
workbook = xlrd.open_workbook('example.xlsx')
# 获取第一个工作表
worksheet = workbook.sheet_by_index(0)
# 获取表头
header = [cell.value for cell in worksheet.row(0)]
# 创建一个新的工作簿
new_workbook = xlwt.Workbook()
# 添加一个工作表
new_worksheet = new_workbook.add_sheet('Sheet1')
# 写入表头
for i, col_name in enumerate(header):
new_worksheet.write(0, i, col_name)
# 设置不同列宽
widths = {
'姓名': 256 * 12,
'年龄': 256 * 6,
'性别': 256 * 6,
'邮箱': 256 * 20,
}
for col_name, width in widths.items():
col_index = header.index(col_name)
new_worksheet.col(col_index).width = width
# 写入数据
for row_index in range(1, worksheet.nrows):
for col_index in range(worksheet.ncols):
cell_value = worksheet.cell_value(row_index, col_index)
new_worksheet.write(row_index, col_index, cell_value)
# 保存工作簿
new_workbook.save('example.xls')
```
在上面的代码中,我们首先使用`xlrd`库打开Excel文件,然后获取第一个工作表和表头。接着,我们创建一个新的工作簿和工作表,并写入表头。然后,我们使用一个字典 `widths` 来存储不同列名对应的列宽,并遍历这个字典,根据列名获取列索引,然后设置对应的列宽。接着,我们遍历Excel文件中的数据,将每个单元格的值写入到新的工作表中。最后,我们保存工作簿到文件中。
需要注意的是,`xlrd`和`xlwt`只支持`.xls`格式的文件,如果你的Excel文件是`.xlsx`格式的,需要使用`openpyxl`库来读取和写入Excel文件。
阅读全文