简介理解
xlsxwrite用来操作excel,整理使用excel操作的一般动作有:打开excel
写入内容
调整格式:对齐 | 字体 | 数字 | 格式
插入图片
页面排版: 合并 | 颜色 | 线条
关闭excel
功能内容
1、打开excel,创建sheet对象
1、Workbook(filename:str, [, options:dict])
参数说明{'nan_inf_to_errors': True}: 允许excel将nan转化为NUM!,inf转化为DIV/0!
2、workbook.add_worksheet([name:str])
3、worksheet.activate() # 制定某个sheet可看见
参数说明name:sheet名称
import xlsxwriter
# 示例
workbook = xlsxwriter.Workbook('demo.xlsx')
worksheet1 = workbook.add_worksheet()
worksheet2 = workbook.add_worksheet('第二章')
workbook.worksheets() # 返回所有sheet
workbook.get_worksheet_by_name('Sheet1') # 返回某个sheet
2、写入内容
expenses = (
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
)
# 插入内容 —— 方式一
worksheet.write(0, 0, 'str':str)
# 插入内容 —— 方式二
worksheet.write('A1', 'str')
# 插入行内容
worksheet.write_row('A1', data)
# 插入列内容
worksheet.write_column('A1', data)
# 插入日期
date_format = workbook.add_format('num_format': 'mmmm d yyyy')
date = datetime.strptime('2013-01-13', "%Y-%m-%d")
worksheet.write_datetime('A1', date, data_format)
# 插入公式
worksheet.write(4, 0, '=SUM(A1:A3)')
# 定义excel变量
workbook.define_name('Excahnge_rate', '=0.96')
worksheet.write('B3', '=B3*Exchange_rate')
workbook.define_name("'New Data'!Sales", '=Sheet2!$G$1:$G$10')
3、 调整格式
3.1、add_format([option:dict])
参数说明
字体相关:’font_name' | 'font_size' | 'font_color' | 'bold' | 'italic' | 'underline' | 'fort_strikeout'(加删除线) | ‘font_script'(上标/下标,在write_rich_string中使用)
数字相关:’num_format'
保护:'locked'(Lock Cells) | 'hidden'(Hide formulas)
对齐:’align' | 'valign' | 'rotation' | ‘text_wrap' | 'text_justlast' | 'center_across' | 'indent' | 'shrink'
模式:‘pattern' | 'bg_color' | 'fg_color'
边框:'border' | 'bottom' | 'top' | 'left' | 'right' | 'border_color' | 'bottom_color' | 'top_color' | 'left_color' | 'right_color'
# 示例
bold = workbook.add_format({'bold': True})
money = workbook.add_format('num_format': '$#,##0')
worksheet.write('A1', 'Item', bold)
worksheet.write('B1', 'Cost', bold)
worksheet.write(2, 0, 1000, money)
bold = workbook.add_format({'bold': True})
italic = workbook.add_format({'italic': True})
worksheet.write_rich_string('A1',
'This is ',
bold, 'bold',
' and this is ',
italic, 'italic')
# 调整行/列格式
set_row(row, height, cell_format, options)
worksheet.set_col('A:D', cell_format)
set_column(first_col, last_col, width, cell_format, options)
worksheet.set_row(0, 18, cell_format)
3.2、data_validation(first_row, first_col, last_row, last_col, options)
options参数:
validate:有效格式,如 interger | decimal | list | date | time | length | custom | any
criteria: 评判办法,如 == | != | > | < | >= | <=
value: 配合criteria的值
maxium:内容最大值
minimum: 内容最小值
input_titile:显示标题
input_message:显示内容
source:数据来源
3.3、conditional_foramat(first_row, first_col, last_row, last_col, options)
options参数:
type: 'cell'等
criteria:规则 如 == | != | > | < | >= | <=
value: 配合criteria的值
maxium:内容最大值
minimum: 内容最小值
format:格式
'multi_range': 多个区域 如 'B3:K6 B9:K12'
3.4、filter_column(col, criteria)
3.5、worksheet.filter_column_list()
worksheet.filter_column('B', 'x > 2000 and x < 5000')
worksheet.filter_column_list('A', ['March', 'April', 'May'])
4、插入图片
4.1、insert_image(row, col, image[, options])
options参数:
x_offset: 横向偏移量,单位像素
y_offset: 纵向偏移量,单位像素
x_scale: 图片横向长度,
y_scale:图片纵向长度
image_data: 图片数据流,用于先把网络数据导入流中,再从流插入excel
url: 图片超链接
object_position:{1: 随着单元格移动并变化大小
2:随着单元格移动但是不变化大小
3: 不随着单元格移动变化大小
4:和1一样,除了单元格隐藏的情况下(单元格隐藏,图片看不到)}
# 插入网络图
url = 'https://python.org/logo.png'
image_data = io.BytesIO(urllib2.urlopen(url).read())
worksheet.insert_image('B5', url, {'image_data': image_data})
5、插入文本框
5.1、insert_textbox(row, col, textbox[, options])
参数说明
textbox:文字内容
options可选项:width | height | x_scale | y_scale | x_offset | y_offset | object_position | line | border | fill | gradient | font | align | text_rotation | textlink | url | tip
6、设计排版
6.1、worksheet.merge_rangee(first_row, first_col, last_row, last_col, data[, cell_format ])
参数介绍略
6.2、freeze_panes(row, col[, top_row, left_col ])
# 调整列宽
worksheet.set_columns(1, 1, 15)
worksheet.set_columns('A:A', 15)
7、关闭excel
workbook.close()