Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

Excel导出



  • 今天从高人那里学来一招不用写controller的excel导出方式,赶快记录下来,不废话,直接上代码:<br />[code]#下载清单<br />    def down_lines(self, cr, uid,ids, context=None): <br />        addonpath = "/home/davidli/workspace/fiat/"<br />        title = [u'编号',u'零部件号',u'零部件名称',u'数量',u'单位',u'标准成本',u'总额']<br />        lines_obj = self.pool.get("gfiat.com_parts_recipients_lines")<br />        lines_ids=lines_obj.search(cr, uid, [('com_parts_recipients_apply_id', '=', ids[0])])<br />        lines_result=lines_obj.read(cr, uid, lines_ids,['number','parts_no','parts_name','parts_quantity','unit','standard_cost','total_price'], context)<br />        <br />        writedata = []<br />        for row in lines_result:<br />            rowdata = ['','','','','','','']<br />            rowdata[0] = row['number']<br />            rowdata[1] = row['parts_no']<br />            rowdata[2] = row['parts_name']<br />            rowdata[3] = row['parts_quantity']<br />            rowdata[4] = row['unit']<br />            rowdata[5] = row['standard_cost']<br />            rowdata[6] = row['total_price']<br />            writedata.append(rowdata)<br />            <br />        filepath = "/fiat_com_department/static/"+datetime.datetime.now().strftime("%Y%m%d%H%M%S%f")+".xls"<br /><br />        down_xls_report.write_report1_xls(cr, uid, title, writedata, 0, len(title), addonpath+filepath)<br />        <br />        #创建一个sheet<br />      <br />        return {<br />                'name':"download",<br />#                'url':"http://www.baidu.com",<br />                'url':"http://localhost:8069"+filepath,<br />                'type': 'ir.actions.act_url',<br />                'target': 'self'<br />            }[/code]<br />[code] #报表文件写出到excel文件<br />    def write_report1_xls(self, cr, uid,title,data,startrow,collen,filepath):<br />        #collen = 11<br />        wbk = xlwt.Workbook()<br />        sheet = wbk.add_sheet('sheet 1',cell_overwrite_ok=True)<br />        x=0<br />        while x<collen:<br />            sheet.write(startrow,x,title[x])<br />            x+=1<br />            <br />        row_index = startrow+1<br />        for row in data:<br />            col_index = 0<br />            while col_index<collen:<br />                sheet.write(row_index,col_index,row[col_index])<br />                col_index += 1<br />                <br />            row_index += 1<br />            <br />        #wbk.save('/home/stevezhou/zambon201403/testwrite.xls')<br />        wbk.save(filepath)<br />        print "write file %s finished!" % filepath[/code]<br /><br />说明:上面的路径信息都是可以写到系统参数配置的。



  • 今天从高人那里学来一招不用写controller的excel导出方式,赶快记录下来,不废话,直接上代码:<br />[code]#下载清单<br />    def down_lines(self, cr, uid,ids, context=None): <br />        addonpath = "/home/davidli/workspace/fiat/"<br />        title = [u'编号',u'零部件号',u'零部件名称',u'数量',u'单位',u'标准成本',u'总额']<br />        lines_obj = self.pool.get("gfiat.com_parts_recipients_lines")<br />        lines_ids=lines_obj.search(cr, uid, [('com_parts_recipients_apply_id', '=', ids[0])])<br />        lines_result=lines_obj.read(cr, uid, lines_ids,['number','parts_no','parts_name','parts_quantity','unit','standard_cost','total_price'], context)<br />        <br />        writedata = []<br />        for row in lines_result:<br />            rowdata = ['','','','','','','']<br />            rowdata[0] = row['number']<br />            rowdata[1] = row['parts_no']<br />            rowdata[2] = row['parts_name']<br />            rowdata[3] = row['parts_quantity']<br />            rowdata[4] = row['unit']<br />            rowdata[5] = row['standard_cost']<br />            rowdata[6] = row['total_price']<br />            writedata.append(rowdata)<br />            <br />        filepath = "/fiat_com_department/static/"+datetime.datetime.now().strftime("%Y%m%d%H%M%S%f")+".xls"<br /><br />        down_xls_report.write_report1_xls(cr, uid, title, writedata, 0, len(title), addonpath+filepath)<br />        <br />        #创建一个sheet<br />      <br />        return {<br />                'name':"download",<br />#                'url':"http://www.baidu.com",<br />                'url':"http://localhost:8069"+filepath,<br />                'type': 'ir.actions.act_url',<br />                'target': 'self'<br />            }[/code]<br />[code] #报表文件写出到excel文件<br />    def write_report1_xls(self, cr, uid,title,data,startrow,collen,filepath):<br />        #collen = 11<br />        wbk = xlwt.Workbook()<br />        sheet = wbk.add_sheet('sheet 1',cell_overwrite_ok=True)<br />        x=0<br />        while x<collen:<br />            sheet.write(startrow,x,title[x])<br />            x+=1<br />            <br />        row_index = startrow+1<br />        for row in data:<br />            col_index = 0<br />            while col_index<collen:<br />                sheet.write(row_index,col_index,row[col_index])<br />                col_index += 1<br />                <br />            row_index += 1<br />            <br />        #wbk.save('/home/stevezhou/zambon201403/testwrite.xls')<br />        wbk.save(filepath)<br />        print "write file %s finished!" % filepath[/code]<br /><br />说明:上面的路径信息都是可以写到系统参数配置的。



  • 很不错,赞一下。<br />变成了静态文件,不知道会不会有 权限问题?



  • 好贴,记录下


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待