Excel格式写入我们前面详细介绍了它的写入机制。不仅如此,它支持格式化功能。迄今为止,这个模块是除了Excel本身之外,支持处理Excel功能最全的Python第三方模块。
第三方模块下面我们详细了解下
写入格式的方法
xlsxwriter支持两种方式来写入格式,我们用一个简单的例子展示写入格式的方法。
不同方法展示方法一:在构造函数中将属性设置为键/值对的字典
import xlsxwriter
workbook = xlswriter.Workbook('test.xlsx')
worksheet = workbook.add_sheet('formatExcel')
titleformat = workbook.add_format({'bold': True,'font_name': '微软雅黑', 'font_size': 22})
worksheet.write(0, 0, '这是一个标题', titleformat)
workbook.close()
方法二:使用对象Format提供的方法
import xlsxwriter
workbook = xlswriter.Workbook('test.xlsx')
worksheet = workbook.add_sheet('formatExcel')
titleformat = workbook.add_format()
titleformat.set_font_name('微软雅黑')
titleformat.set_font_size(22)
titleformat.set_bold()
worksheet.write(0, 0, '这是一个标题', titleformat)
workbook.close()
Note:
一般来说,键/值接口比对象方法更灵活、更清晰,是设置格式属性的推荐方法。但是,这两种方法产生结果是相同的。格式可以传递给工作表的set_row()和set_column()方法来定义行或列的默认格式属性(下文示例)设置格式时,以最终写入的格式状态来确定。比如:本例中,我们在worksheet.write(0, 0, '这是一个标题', titleformat)语句之前,加入titleformat.set_font_name('宋体'),则字体就变为了宋体,而加粗、字体大小设置不受影响。可以格式化的单元格的属性包括:字体、颜色、图案、边框、对齐方式和数字格式。下面,我们逐一进行介绍。
数值格式Number类
添加数值格式的方法和属性如下所示:
如果使用的数字格式与Excel内置数字格式之一相同,如下图:
Excel界面中数字格式设置那么它将具有数字类别。例如常规、数字、货币、会计、日期、时间、百分比、分数、科学、文本、特殊或自定义。官网定义了49种常见的格式字符串,感兴趣的小伙伴可以看下。
任意设置数字格式,得到“设置即所见”的效果,这是xlsxwriter模块功能强大的地方。那么,对于Excel不是很了解的小伙伴如何设置自己需要的格式呢?
下面为大家介绍一种方法。
【通用方法】
在下面的示例中,格式化输出显示为数字类别:
import xlsxwriterworkbook = xlsxwriter.Workbook('test_num_format.xlsx')worksheet = workbook.add_worksheet('test')currency_format = workbook.add_format({'num_format': '$#,##0.00'})worksheet.write('A1', 123456.789, currency_format)workbook.close()假设我们不理解上面的“$#,##0.00”这一串格式字符串的含义,如何自定义自己需要的数字格式内容呢?
我们知道,Excel中的数字类别,无非就是上面提及的这样几类。举个简单的例子,比如,我们需要将某一单元格的数值设置为货币(比如:US)。操作方法如下:
打开Excel,选中单元格(这里不单指单元格,可以选择行、列等),单击右键(选择“设置单元格格式...”),选择数值类型(货币),如下图:
设置好格式之后货币格式设置好之后,点击左侧【自定义】,右侧【类型】即为我们需要的自定义字符串。("US$"#,##0.00;-"US$"#,##0.00)
自定义字符串我们设置看下Excel单元格中的格式。
Excel中的效果使用时,我们只需要将下面方法中的num_format参数值设置为我们刚才获得的自定义字符串就可以了()
workbook.add_format({'num_format': '"US$"#,##0.00;-"US$"#,##0.00'})
注意这里单双引号的使用。
下面,完整看下这个例子。
import xlsxwriterworkbook = xlsxwriter.Workbook('test_num_format.xlsx')worksheet = workbook.add_worksheet('test')currency_format = workbook.add_format({'num_format': '"US$"#,##0.00;-"US$"#,##0.00'})worksheet.write('A1', 3117, currency_format)workbook.close()运行效果如下图:
自定义格式成功数值格式的变化方法我们掌握了(很好理解),下面我们了解下添加其它格式的内容。
剩余47%未读立即解锁专栏,阅读全文