对Excel进行操作
如果文件中有中文需要对文件进行编码
file = file.decode(“utf-8”)
1、导入模块(xlrd)
import xlrd
2、打开Excel文件读取数据
data = xlrd.open_workbook('excelFile.xls')
3、常用方法
**获取一个工作表**
table = data.sheets()[0] #通过索引顺序获取
table = data.sheet_by_index(0) #通过索引顺序获取
table = data.sheet_by_name(u'Sheet1')#通过名称获取
**获取整行和整列的值(数组)**
table.row_values(i)
table.col_values(i)
**获取行数和列数**
nrows = table.nrows
ncols = table.ncols
**循环行列表数据**
for i in range(nrows):
print table.row_values(i)
**单元格**
cell_A1 = table.cell(0,0).value
cell_C4 = table.cell(2,3).value
**使用行列索引**
cell_A1 = table.row(0)[0].value
cell_A2 = table.col(1)[0].value
xlwt使用介绍
下面例子,创建一个名为mini.xls的文件它有一个空sheet:‘xlwt was here’。
from xlwt import xlwt
w =xlwt.Workbook()
ws = w.add_sheet('xlwt was here')
ws.write(0,0, label = 'this is test') # 在对应行,列写入值
ws.write(1,0, 'this is test') # 在对应行,列写入值
w.save('mini.xls')
w.save(文件名字) :是用来保存的,括号内是文件名字
ws.write(横,列,写入内容):在对应横列写入值,横列可以用‘end‘
Workbook类初始化时有encoding和style_compression参数。
- encoding设置字符编码,一般要这样设置:w=Workbook(encoding=‘utf-8’),就可以在excel中输出中文了。默认是ascii。
- style_compression 表示是否压缩,不常用。
Workbook 还有一些属性:
Owner 设置文档所有者。
country_code: 国家码
wnd_protect: 窗口保护
obj_protect: 对象保护
Protect: 保护
backup_on_save: 保存时备份
Hpos: 横坐标
Vpos: 纵坐标
Width: 宽度
Height: 高度
active_sheet: 活动sheet
tab_width: tab宽度
wnd_visible: 窗口是否可见
wnd_mini: 窗口最小化
hscroll_visible: 横向滚动条是否可见。
vscroll_visible: 纵向滚动条是否可见。
tabs_visible: tab是否可见。
dates_1904: 是否使用1904日期系统
use_cell_values: 单元格的值
default_style: 默认样式
colour_RGB: 颜色
方法有:
add_style,add_font,add_str,del_str,str_index,add_rt,rt_index,add_sheet,get_sheet,raise_bad_sheetname,convert_sheetindex,setup_xcall,add_sheet_reference。
设置字体属性
font = xlwt.Font() # 创建一个font对象,用来保存对字体进行的操作
font.name = '微软雅黑' # 字体设置为'微软雅黑'
font.bold = True # 字体加粗
font.underline = True # 字体加下划线
font.italic = True # 字体倾斜
style = xlwt.XFStyle() # 创建一个style对象,用来保存excel的样式
style.font = font # 将字体信息保存到style对象中
worksheet.write(0, 0, '无字体格式')
worksheet.write(1, 0, '有字体格式', style) # 在坐标为1,0的单元格内添加内容'有字体格式',并带有字体属性
设置背景
#创建一个pattern对象,用来保存单元格背景的样式
pattern = xlwt.Pattern()
#设置单元格的背景图案样式(0x01-0x12共18种样式)
pattern.pattern = 0x01
#设置单元格的背景颜色
pattern.pattern_fore_colour = xlwt.Style.colour_map['yellow']
style = xlwt.XFStyle()
style.pattern = pattern # 将背景颜色信息保存到styke对象中
worksheet.write(0, 0, '有背景颜色', style) # 在坐标为0,0的单元格内添加内容'有背景',并带有背景颜色
合并单元格
#将坐标为纵坐标0,0和横坐标0,1的两列合并,并添加内容'合并两列'
worksheet.write_merge(0, 0, 0, 1, '合并两列')
#将纵坐标为1,0和横坐标2,0的两行合并,并添加内容'合并两行'
worksheet.write_merge(1, 2, 0, 0, '合并两行')
#将纵坐标为3-5横坐标为0-2的三行三列合并,并添加内容'合并三行三列'
worksheet.write_merge(3, 5, 0, 2, '合并三行三列')
其他方法
#设置单元格宽度
worksheet.col(0).width = 200