worksheet.write()


wirte(row, col, *args)


向工作表单元格写入普通的数据。



参数:


  • row - 单元格所在的行(索引从0开始计数)
  • col - 单元格所在的列(索引从0开始计数)
  • *args - 传递到子方法的附加参数诸如数字,字符串,单元格格式。


write()方法作为以下几个特定方法的假名(译者注:意思就是通常不需要程序员显式地指定以下方法,在使用write()方法时XlxsWriter会按照规则判断数据类型并采用对应的方法写入数据):


  • write_string()
  • write_number()
  • write_blank()
  • write_formula()
  • write_datetime()
  • write_boolean()
  • write_url()

write()处理数据的规则如下:


  • 数据类型诸如float, int, long, decimal.Decimal和fractions.Fraction 使用write_number()方法。
  • 数据类型诸如datatime.datetime,datetime.datedatetime.time 或 datetime.timedelta 使用write_datetime()方法。
  • None和空字符串“”使用write_blank()方法。
  • 数据类型bool使用write_boolean()。

字符串(String)则按照以下规则处理数据:


  • 以“=”开始的匹配公式字符串使用write_formula()方法。这个方法可以被覆盖,见下。
  • 匹配支持的URL的字符串使用write_url()方法。这个方法可以被覆盖,见下。
  • 为了防止Excel警告“Numbers Stored as Text”,当Workbook()构造器strings_to_numbers选项为True时,被float()方法转换为数字的字符串会使用write_number()方法。见下。
  • 不匹配以上条件的字符串会使用write_string()方法。

float()来检查它是否与用户定义的浮点类型相对应。如果不对应,则会使用 write_number()方法。


TypeError异常。


这是一些例子:



worksheet.write(0, 0, 'Hello')          # write_string()
worksheet.write(1, 0, 'World')          # write_string()
worksheet.write(2, 0, 2)                # write_number()
worksheet.write(3, 0, 3.00001)          # write_number()
worksheet.write(4, 0, '=SIN(PI()/4)')   # write_formula()
worksheet.write(5, 0, '')               # write_blank()
worksheet.write(6, 0, None)             # write_blank()

这将创建一个像下面这样的工作表:




python 实现 workerflow python worksheet.write_数据


注意


Workbook()构造器选项接收三个可选参数,可以用来覆盖write()函数的字符串处理。


这些选项与它们的默认值如下:



xlsxwriter.Workbook(filename, {'strings_to_numbers':  False,
                               'strings_to_formulas': True,
                               'strings_to_urls':     True})

write()方法支持两种形式的表示法来指定单元格的位置:

行-列Row-column)表示法和 A1表示法:



# 这两种形式是等价的
worksheet.write(0, 0, 'Hello')
worksheet.write('A1', 'Hello')

在子 write方法中

cell_format参数是用来应用格式化到单元格的,这个参数是可选的但在启用时它应当是有效的格式化对象:


cell_format = workbook.add_format({'bold': True, 'italic': True})

worksheet.write(0, 0, 'Hello', cell_format)  # 单元格是加粗(Blod)和斜体(Italic)的