• python操作excel


    pip install xlwt 
    
    import xlwt 
    
    创建一个worlkbook,设置编码
    workbook = xlwt.Workbook(encoding="utf8")
    
    创建一个worksheet
    worksheet =workbook.add_sheet("sheetName")
    
    写入excel
    #参数对应 行,列,值
    worksheet.write(1,0,"nihao")
    
    保存
    workbook.save("name.exl")

    举例:

    定义方法:excel 表头加粗,excel内容常体

      def kn_write_sheet_row(self, sheet, row_index, value_array, is_bold):
            bold_style = xlwt.easyxf('font: bold 1')
            column_index = 0
            for value in value_array:
                if is_bold:
                    sheet.write(row_index, column_index, value, bold_style)
                else:
                    sheet.write(row_index, column_index, value)
                column_index += 1
    

      

    写入excel并导出:

     1  def list_request(self, args):
     2         """
     3         表格到文件,并返回相应下载URL
     4         :param args: HTTP 参数
     5         :return: 返回是否处理成功,如成功则返回相应下载URL
     6         :rtype: {status, openUrl}
     7         """
     8         try:
     9             title = u"逻辑核查"
    10             project_id = args["project_id"] if args["project_id"] else ""
    11             logical_verify_dict_array, total = self.logicalVerifyDao.get_logical_verifies(project_id, args)
    12             wb = xlwt.Workbook()
    13             ws = wb.add_sheet(title)
    14 
    15             head_list = [u'名称', u'脚本', u'类型']
    16             row_index = 0
    17             self.kn_write_sheet_row(ws, row_index, head_list, True)
    18             row_index += 1
    19             for logical_verify_dict in logical_verify_dict_array:
    20                 value_array = []
    21                 value_array.append(logical_verify_dict["name"])
    22                 value_array.append(logical_verify_dict["script"])
    23                 value_array.append(logical_verify_dict["type"])
    24                 self.kn_write_sheet_row(ws, row_index, value_array, False)
    25                 row_index += 1
    26             config_export_name = "logical_verify%s" % Util().getDateTime().replace(' ', '-').replace(":", "-")     #创建下载文件的名字.
    27             export_file_path = os.path.normpath("%s/port_files/export/%s.xls" % (PDFormApp.DATA_PATH, config_export_name.encode("utf-8")))
    28             wb.save(export_file_path)
    29 
    30             print(666666666666,config_export_name)    #(666666666666L, 'logical_verify2019-05-29-18-18-52')
    31 
    32             print(777777,export_file_path)  #(777777, 'G:\knkj\pdform_py\dataservices\data\port_files\export\logical_verify2019-05-29-18-18-52.xls')
    33 
    34             web_path = "%s/%s.xls" % (PDFormApp.DIR_UPLOAD_EXP, config_export_name)
    35 
    36             print(88888888,web_path)  #(88888888, '/ds/data/pdform/exp/logical_verify2019-05-29-18-18-52.xls')
    37 
    38 
    39             export_file_data = file(export_file_path, "rb").read()  #获取文件数据
    40 
    41             # mem_file = StringIO.StringIO()
    42             # wb.save(mem_file)
    43             # wb_data = mem_file.getvalue()
    44 
    45             response = Response()
    46             response.data = export_file_data  #写入响应对象里。
    47             response.mimetype = "application/vnd.ms-excel"
    48             response.headers['Content-disposition'] = "inline; filename="%s.xls"" % title.encode("gbk")  #设置响应头.
    49             return response
    50         except Exception, ex:
    51             app.logger.error(traceback.format_exc())
    52             return Response(None, status=404)

    第二种方法(上面第三十九行开始替换):

     1             mem_file = StringIO.StringIO()
     2             wb.save(mem_file)
     3             wb_data = mem_file.getvalue()
     4 
     5             response = Response()
     6             response.data = wb_data
     7             response.mimetype = "application/vnd.ms-excel"
     8             response.headers['Content-disposition'] = "inline; filename="%s.xls"" % title.encode("gbk")
    11             return response
    12         except Exception, ex:
    13             app.logger.error(traceback.format_exc())
    14             return Response(None, status=404)
  • 相关阅读:
    django操作mysql时django.db.utils.OperationalError: (2003, "Can't connect to MySQL server")异常的解决方法
    Django实践:个人博客系统(第七章 Model的设计和使用)
    shared_ptr / weak_ptr 代码片段
    Java中比较容易混淆的知识点
    指针和引用作为参数的区别
    STL 算法
    STL扩展容器
    STL中 map 和 multimap
    STL中 set 和 multiset
    <<C++标准程序库>>中的STL简单学习笔记
  • 原文地址:https://www.cnblogs.com/mengbin0546/p/10945281.html
Copyright © 2020-2023  润新知