Python創(chuàng)建 XLS 文件的類封裝
在處理 Excel 文件時,我們經(jīng)常需要創(chuàng)建、編輯和保存 XLS 文件。為了簡化這個過程,我們可以將常用的操作封裝成一個類,方便復用和擴展。下面是一個基于 Python 的 XLS 文件操作類,包括以
在處理 Excel 文件時,我們經(jīng)常需要創(chuàng)建、編輯和保存 XLS 文件。為了簡化這個過程,我們可以將常用的操作封裝成一個類,方便復用和擴展。下面是一個基于 Python 的 XLS 文件操作類,包括以下功能:
1. 創(chuàng)建 XLS 文件
通過 `__init__` 方法初始化一個 XLS 文件對象,并創(chuàng)建 Workbook 對象。
2. 添加工作表
使用 `add_sheet` 方法可以向 XLS 文件中添加新的工作表,并返回該工作表對象。
3. 向工作表寫入數(shù)據(jù)
`write_rows` 方法可以將一維列表數(shù)據(jù)寫入工作表的某一行,`write_cols` 方法可以將一維列表數(shù)據(jù)寫入工作表的某一列。
`write_merge` 方法可以將數(shù)據(jù)寫入合并單元格。
4. 保存 XLS 文件
通過 `save_file` 方法可以將創(chuàng)建和編輯好的 XLS 文件保存到磁盤。
下面是完整的代碼實現(xiàn):
```python
import xlrd, xlwt, xlsxwriter
from import copy
from datetime import date, datetime
import sys
reload(sys)
('utf-8')
class WtXls(object):
"""創(chuàng)建excel"""
def __init__(self, file_name):
super(WtXls, self).__init__()
_name file_name
()
def add_sheet(self, sheet_name):
新增一個sheet,避免重復操作單元格報錯:cell_overwrite_okTrue
_sheet(sheet_name, cell_overwrite_okTrue)
return
def write_rows(self, sheet, nrow, mcols, values):
從第mcols列開始填充第nrow行數(shù)據(jù)
for mcol in range(0, len(values)):
sheet.write(nrow, mcol mcols, values[mcol])
return True
def write_cols(self, sheet, nrows, mcol, values):
從第nrows行開始填充第mcol列數(shù)據(jù)
for nrow in range(0, len(values)):
sheet.write(nrow nrows, mcol, values[nrow])
return True
def write_merge(self, sheet, nrows_mcols):
填充合并單元格
for nrow_mcol in nrows_mcols:
sheet.write_merge(nrow_mcol[0], nrow_mcol[1], nrow_mcol[2], nrow_mcol[3], nrow_mcol[4])
return True
def save_file(self):
保存excel
(_name)
return True
```
使用這個 `WtXls` 類,我們可以很方便地創(chuàng)建、編輯和保存 XLS 文件。例如:
```python
xls WtXls('output.xls')
sheet _sheet('Sheet1')
xls.write_rows(sheet, 0, 0, ['Name', 'Age', 'Gender'])
xls.write_cols(sheet, 1, 0, ['Alice', 'Bob', 'Charlie'])
xls.write_merge(sheet, [(0, 0, 0, 2, 'Summary')])
_file()
```
這樣就創(chuàng)建了一個包含一個工作表的 XLS 文件,第一行為標題,后面三行為數(shù)據(jù),第一列為姓名,第二列為年齡,第三列為性別。
通過這種封裝,我們可以更方便地管理和擴展 XLS 文件的操作,提高開發(fā)效率。