如何利用Python语言将xls文件转换成xlsx文件?
时间: 2023-05-23 22:03:06 浏览: 96
你可以使用openpyxl和pandas库来实现将xls文件转换成xlsx文件。下面是示例代码:
```python
import pandas as pd
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
# 读取xls文件
df = pd.read_excel('file.xls')
# 创建一个新的xlsx文件
wb = Workbook()
ws = wb.active
# 将表格数据转换成行数据
rows = dataframe_to_rows(df)
# 将行数据插入到新的xlsx工作表中
for r_idx, row in enumerate(rows, 1):
for c_idx, value in enumerate(row, 1):
ws.cell(row=r_idx, column=c_idx, value=value)
# 保存xlsx文件
wb.save('file.xlsx')
```
相关问题
python xls文件转换为xlsx文件
你可以使用openpyxl库将xls文件转换为xlsx文件。下面是一个示例代码:
```python
import openpyxl
from openpyxl.utils import get_column_letter
from openpyxl import Workbook
from openpyxl.compat import range
def convert_xls_to_xlsx(xls_file, xlsx_file):
# 打开xls文件
xls_workbook = openpyxl.load_workbook(xls_file, read_only=True, keep_vba=False, data_only=True)
# 创建新的xlsx文件
xlsx_workbook = Workbook()
# 遍历xls文件中的每个工作表
for sheet_name in xls_workbook.sheetnames:
xls_sheet = xls_workbook[sheet_name]
xlsx_sheet = xlsx_workbook.create_sheet(title=sheet_name)
# 复制每个单元格的值和样式到新的xlsx文件中
for row in xls_sheet.iter_rows():
for cell in row:
xlsx_sheet[cell.coordinate].value = cell.value
if cell.has_style:
xlsx_sheet[cell.coordinate].font = cell.font
xlsx_sheet[cell.coordinate].border = cell.border
xlsx_sheet[cell.coordinate].fill = cell.fill
xlsx_sheet[cell.coordinate].number_format = cell.number_format
xlsx_sheet[cell.coordinate].alignment = cell.alignment
# 调整列宽
for column_cells in xls_sheet.columns:
max_length = 0
column = column_cells[0].column_letter
for cell in column_cells:
try:
if len(str(cell.value)) > max_length:
max_length = len(cell.value)
except:
pass
adjusted_width = (max_length + 2) * 1.2
xlsx_sheet.column_dimensions[column].width = adjusted_width
# 删除默认创建的空白工作表
del xlsx_workbook["Sheet"]
# 保存xlsx文件
xlsx_workbook.save(xlsx_file)
# 示例用法
xls_file = "example.xls"
xlsx_file = "example.xlsx"
convert_xls_to_xlsx(xls_file, xlsx_file)
```
在示例中,我们首先使用`openpyxl.load_workbook()`函数打开xls文件,然后使用`openpyxl.Workbook()`创建一个新的xlsx文件。接下来,我们遍历xls文件中的每个工作表,并将每个单元格的值和样式复制到新的xlsx文件中。最后,我们调整每列的宽度,并删除默认创建的空白工作表。最后,我们使用`xlsx_workbook.save()`函数保存xlsx文件。
确保在运行代码之前安装openpyxl库,可以使用以下命令进行安装:
```
pip install openpyxl
```
请将`xls_file`和`xlsx_file`变量替换为你实际的文件路径。
用python将xlsx文件转换成xls文件
你可以使用openpyxl和xlwt库来实现将xlsx文件转换成xls文件。下面是一个简单的示例代码:
```python
import openpyxl
import xlwt
# 打开xlsx文件
wb = openpyxl.load_workbook('example.xlsx')
# 创建xls文件
new_wb = xlwt.Workbook()
# 将xlsx文件中的每个sheet转换为xls文件中的sheet
for sheet_name in wb.sheetnames:
ws = wb[sheet_name]
new_ws = new_wb.add_sheet(sheet_name)
for row in ws.iter_rows():
for cell in row:
new_ws.write(cell.row-1, cell.col_idx-1, cell.value)
# 将xls文件保存到本地
new_wb.save('example.xls')
```
这个示例代码假设你已经安装了openpyxl和xlwt库,并且将要转换的xlsx文件名为example.xlsx。它会将该文件中的每个sheet转换为一个对应的xls文件中的sheet,并将结果保存为example.xls文件。