这个代码得到的新的xls文件的格式和我原先的文件已经完全不一样了,有什么办法让格式不变,只改变内容吗
时间: 2024-02-27 12:56:53 浏览: 32
如果想要保留原有 xls 文件的格式,只修改数据,可以使用`xlwt`库打开已有的 xls 文件并直接修改其中的单元格数据。具体步骤如下:
1. 导入`xlwt`库:
```python
import xlwt
```
2. 打开已有的 xls 文件:
```python
workbook = xlwt.Workbook()
workbook = xlrd.open_workbook(filename="filename.xls", formatting_info=True)
```
3. 获取要修改数据的 sheet:
```python
sheet = workbook.sheet_by_index(0)
```
4. 修改数据:
```python
row = 1
col = 1
data = "new data"
new_workbook = xlwt.Workbook()
new_sheet = new_workbook.add_sheet("Sheet1")
for r in range(sheet.nrows):
for c in range(sheet.ncols):
if r == row and c == col:
new_sheet.write(r, c, data)
else:
new_sheet.write(r, c, sheet.cell_value(r, c))
# 复制格式
if r == 0:
new_sheet.write(r, c, sheet.cell_value(r, c))
new_sheet.col(c).width = sheet.col(c).width
```
5. 保存文件:
```python
new_workbook.save("new_filename.xls")
```
在修改数据的代码中,我们首先使用`xlrd`库打开已有的 xls 文件并获取要修改数据的 sheet,然后使用`xlwt`库创建一个新的 xls 文件,并向其中添加一个名为"Sheet1"的 sheet。接着,我们使用`for`循环遍历原始文件中的所有单元格,如果当前单元格是要修改的单元格,则将新数据写入到新文件中,否则将原始文件中的数据写入到新文件中。同时,我们使用`if`语句判断当前行是否为第一行,如果是,则将新文件中对应单元格的格式复制为原始文件中对应单元格的格式,并设置新文件中对应列的宽度为原始文件中对应列的宽度,从而保留原始文件的格式。最后,我们调用`new_workbook.save()`方法保存新文件。
需要注意的是,这种方法只能修改 xls 文件中已有的单元格数据,而无法添加新的单元格或删除已有的单元格。如果需要添加或删除单元格,需要使用`openpyxl`库来操作。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)