Python Excel操作模块XlsxWriter之写入字符串worksheet.write_string()

本文详细介绍了如何使用worksheet.write_string()方法向Excel工作表单元格中写入字符串,包括参数说明、格式设置、字符串长度限制等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

worksheet.write_string()

write_string(row, col, string[, cell_format])

向工作表单元格写入字符串。

参数:

  • row(int) - 单元格所在的行(索引从0开始计数)。
  • col(int) - 单元格所在的列(索引从0开始计数)。
  • string(string) - 写入单元格的字符串。
  • cell_format(Format) - 可选的格式对象。
write_string()方法根据rowcolumn参数向指定的单元格写入字符串:
worksheet.write_string(0, 0, 'Your text here')
worksheet.write_string('A2', 'or here')
行-列和A1表示法都支持。
cell_format参数用于向单元格应用格式。这个参数是可选的,但当启用时,它的值必须是有效的格式对象。
当编码为UTF-8时支持unicode字符串。通常要求你的源文件也是UTF-8编码的:
# _*_ coding: utf-8

worksheet.write('A1', u'Some UTF-8 text')

或者,你可以从编码过的文件里读取数据,在读取时把它转换为UTF-8,然后将数据写入Excel文件。
Excel最多支持32767个字符。比这要长的字符串会被write_string()截断。

注意
虽然Excel支持32767个字符串,但是单元格中只会显示1000个。然而,32767个字符在公式行(formula bar)还是可见的。

#导出excel def button_download_study_find(self): results = self.search_study_find() fild_date = io.BytesIO() workbook = xlsxwriter.Workbook(fild_date) worksheet = workbook.add_worksheet('试验项目审核记录') format_red = workbook.add_format({'font_color': 'red'}) # excel的标题字段 text_mapping = { 'display_name': '试验项目名称', 'serial_number': '试验项目编号', 'study_leader' : '试验项目负责人', 'subitem_leader' : '试验分项负责人', 'study_progress_status': '试验项目状态', 'study_start_date': '试验项目启动日期', 'test_start_date': '试验开始日期', 'test_end_date' : '试验结束日期', 'study_end_date' : '试验项目完成日期', 'filing_date' : '归档日期' } #写入标题行 for col_num, header in enumerate( text_mapping.values()): worksheet.write(0, col_num, header) # print(worksheet.str_table.string_table.keys()) row_index = 0 #遍历记录,得到修改字段,通过id将值写入excel中,修改字体颜色为红色 for result in results:#result odoo记录对象 result_num = result.id['study_id'] #得到字典 result.id ; result.id['study_id']=1860 id_values = (self.env['pcses.study'].browse(result_num)).read()[0] #根据id得到记录内容 field_names_list = [k for k in result.id.keys() if k.endswith('_change')] field_name =set([ field.replace("_change","") for field in field_names_list])#得到修改的日期字段'filing_date' row_index += 1 #写入数据的行数 for col_num , name_text in enumerate(text_mapping.keys()):#找到excel标题中对应的字段 if name_text in field_name :# 有交集的以红色写入 worksheet.write( row_index , col_num + 1, str(id_values[name_text]), format_red) else :#无交集的正常写入 worksheet.write(row_index, col_num + 1, str(id_values[name_text])) print(worksheet.str_table.string_table.keys()) fild_date.seek(0) workbook.close() filename = f"试验项目筛选-{fields.Date.today().strftime('%Y%m%d')}" file_id = self.env['ir.attachment'].create({ 'name': 'filename', 'type': 'binary', 'res_model': self._name, 'datas': base64.b64encode(fild_date.read()), }) # 返回下载链接 return { "type": "ir.actions.act_url", "target": "self", "url": f"/web/content?download=true&field=datas&filename={filename}.xlsx&id={file_id.id}", }帮我检查代码。我需要的是将记录下载到excel中并保留字体颜色,但生成的excel中没有数据
03-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值