一、安装xlrd模块:
1、mac下打开终端输入命令:
pip install XlsxWriter
2、验证安装是否成功:
- 在mac终端输入 python 进入python环境
- 然后输入 import xlswriter
不报错说明模块安装成功
二、常用方法:
1、创建excel文件
# 创建文件 workbook = xlsxwriter.Workbook("new_excel.xlsx")
2、创建sheet
# 创建sheet worksheet = workbook.add_worksheet("first_sheet")
3、特定单元格里写入数据
a) 写入文本
# 法一: worksheet.write(\'A1\', \'write something\') # 法二: worksheet.write(1, 0, \'hello world\')
b)写入数字
# 写入数字 worksheet.write(0, 1, 32) worksheet.write(1, 1, 32.3)
c)写入函数
worksheet.write(2, 1, \'=sum(B1:B2)\')
d)写入图片
# 插入图片 worksheet.insert_image(0, 5, \'test.png\') worksheet.insert_image(0, 5, \'test.png\', {\'url\': \'http://httpbin.org/\'})
e)写入日期:
# 写入日期 d = workbook.add_format({\'num_format\': \'yyyy-mm-dd\'}) worksheet.write(0, 2, datetime.datetime.strptime(\'2017-09-13\', \'%Y-%m-%d\'), d)
f)设置行、列属性
# 设置行属性,行高设置为40 worksheet.set_row(0, 40) # 设置列属性,把A到B列宽设置为20 worksheet.set_column(\'A:B\', 20)
4、自定义格式:
常用格式:
- 字体颜色:color
- 字体加粗:bold
- 字体大小:font_site
- 日期格式:num_format
- 超链接:url
- 下划线设置:underline
- 单元格颜色:bg_color
- 边框:border
- 对齐方式:align
# 自定义格式 f = workbook.add_format({\'border\': 1, \'font_size\': 13, \'bold\': True, \'align\': \'center\',\'bg_color\': \'cccccc\'}) worksheet.write(\'A3\', "python excel", f) worksheet.set_row(0, 40, f) worksheet.set_column(\'A:E\', 20, f)
5、批量往单元格写入数据
# 批量往单元格写入数据 worksheet.write_column(\'A15\', [1, 2, 3, 4, 5]) # 列写入,从A15开始 worksheet.write_row(\'A12\', [6, 7, 8, 9]) # 行写入,从A12开始
6、合并单元格写入
# 合并单元格写入 worksheet.merge_range(7,5, 11, 8, \'merge_range\')
7、关闭文件
workbook.close()
8、生成图表:
xlswriter还可以用来生成图表,这一部分内容也比较多,下一节单独介绍。
示例:
# -*- coding:utf-8 -*- import xlsxwriter workbook = xlsxwriter.Workbook("data.xlsx") worksheet = workbook.add_worksheet() data = ( [\'kobe\', 5000], [\'T-Mac\', 3000], [\'Jordan\', 6000], [\'James\', 5000], ) f = workbook.add_format({\'bold\': True, \'bg_color\': \'yellow\'}) worksheet.write(0, 0, \'name\', f) worksheet.write(0, 1, \'price\', f) row = 1 col = 0 for item, cost in data: worksheet.write(row, col, item) worksheet.write(row, col+1, cost) row += 1 workbook.close()