Python脚本:实现对象集合List导入到excel表格,支持mysql,postergrsql,MongoDB
import xlwt
import os
import datetime #验证export_filed中的字段是否在对象字段中
def checkField(obj_list,filed_dict):
flag = True
msg = ''
if obj_list == []:
return False,'导出内容为空'
else:
for i in range(len(obj_list)):
for field in filed_dict:
try:
obj_list[i][field]
except:
flag = False
if len(msg) <=100:
msg +='第{0}行未找到{1}字段'.format(i+1,field)
else:
msg += '....'
break
return flag, msg #1.存放导出表格的目录
#2.table_name:导出的表格名字,不带后缀名,默认为.xls
#3. obj_list:需要导出对象集合 ,通过sql语句查询获得的对象集合
#4.export_filed:导出的字段和中文的对应关系,字段必须时对象里面包含的,
# 如{'name':'名字','age':'年龄'},不可为空,只有在这里的字段才会被导出
def tableExportToXlsx(export_dir,table_name,obj_list,filed_dict): #1.创建表格
workbook = xlwt.Workbook()
#创建excel的一个sheet
sheet = workbook.add_sheet(table_name,cell_overwrite_ok=True) #2.验证export_filed中的字段是否在对象字段中
flag,msg = checkField(obj_list,filed_dict)
if not flag:
return {'msg':msg}
else:#通过验证
attrs_list = []
#3.在表格第一行写入表格的中文字段,即是表头
#将表格字段提取出来转化成数组
table_index = [k for k,v in filed_dict.items()]
for i in range(len(table_index)):
#写入中文字段
sheet.write(0,i,filed_dict[table_index[i]]) #4.对象导入表格
for row in range(len(obj_list)):
for col in range(0,len(table_index)):
sheet.write(row+1,col,obj_list[row][table_index[col]]) #5.存储文件
if not os.path.exists(export_dir):
os.makedirs(export_dir)
#加上导出时间
export_time = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
file_name = '{0}-{1}.xls'.format(table_name,export_time)
save_path = os.path.join(export_dir,file_name)
print('文件路径为' + save_path)
try:
workbook.save(save_path)
except:
print(export_dir+'目录不存在') #6.检查是否导出成功
if os.path.isfile(save_path):
print('导出成功,文件为'+save_path)
return {'msg':'ok','file_name':file_name}
else:
msg = '存储文件发生异常,检查{0}目录是否存在'.format(export_dir)
print(msg)
return {'msg':msg}
Python脚本:实现对象集合List导入到excel表格,支持mysql,postergrsql,MongoDB的更多相关文章
- Java IO 导入导出Excel表格
1.将excel导入到内存 1. 调用工作簿Workbook的静态方法getWorkbook(),获得工作簿Workbook对象 InputStream in = new FileInputStrea ...
- PHP导入导出excel表格图片(转)
写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了.呵呵.(COM方式不讲了,这种可读的太多了,我也写过利用wp ...
- python用paramiko将执行的结果存入excel表格
一.paramiko 利用paramiko可以远程控制服务器,上传和下载文件. 1.paramiko密码登录方式: #!/usr/bin/env python #coding:utf-8import ...
- Java代码导入导出 Excel 表格最简单的方法
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStrea ...
- PHP导入导出excel表格图片的代码和方法大全
基本上导出的文件分为两种: 1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已.修改这种文件后再保存,通常会提示你是否要转换成Excel文件 ...
- Java利用POI实现导入导出Excel表格示例代码
转自:https://www.jb51.net/article/95526.htm 介绍 Jakarta POI 是一套用于访问微软格式文档的Java API.Jakarta POI有很多组件组成,其 ...
- Python脚本:实现excel表格导入到数据库,支持mysql,postgresql,MongoDB
import xlrd,re from datetime import datetime from xlrd import xldate_as_tuple # 判断上传表格是否与模板要求一致 def ...
- 使用python读取京东pdf发票信息导出到excel表格中
代码 #!/usr/bin/env python # -*- coding: utf-8 -*- """ pip install pdfminer3k pip insta ...
- java将数据库中查询到的数据导入到Excel表格
1.Maven需要的依赖 <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> ...
随机推荐
- Flutter环境安装,ios真机调试
MAC: 下载Flutter,官网的可能很慢.可以去我的网盘下载, 提取码: 3t6y. 下载完的包会在~/Downloads目录下,我们移到~/opt/flutter目录下. mkdir ./opt ...
- 图解AVL树
1:AVL树简介 二叉搜索树在一般情况下其搜索的时间复杂度为O(logn),但某些特殊情况下会退化为链表,导致树的高度变大且搜索的时间复杂度变为O(n),发挥不出树这种数据结构的优势,因此平衡二叉树便 ...
- phpcms 用phpexcel导入导出excel
html <form method="post" action="?m=content&c=content&a=public_add_excel&q ...
- redis的5种数据类型
卸载服务:redis-server --service-uninstall 开启服务:redis-server --service-start 停止服务:redis-server --service- ...
- 如何在 Inno Setup 中执行命令行的命令
Pascal Scripting: Exec Prototype: function Exec(const Filename, Params, WorkingDir: String; const Sh ...
- [Python] bytes 转换成 str
b = b"example" # bytes object s = "example" # str object sb = bytes(s, encoding ...
- vue 开发规范
本文档为前端 vue 开发规范 规范目的 命名规范 结构化规范 注释规范 编码规范 CSS 规范 规范目的 为提高团队协作效率 便于后台人员添加功能及前端后期优化维护 输出高质量的文档 命名规范 为了 ...
- element-ui 通用表单封装及VUE JSX应用
一.存在及需要解决的问题 一般在做后台OA的时候会发现表单重复代码比较多,且逻辑基本一样,每次新加一个表单都需要拷贝基本一致的代码结构,然后只是简单地修改对应的字段进行开发 二.预期结果 提取重复的表 ...
- react 工程起步 安装chrome 开发调试工具 react developer tools 及初建一个react 项目...
1.安装react 开发工具 1.下载 chrome react developer tools 下载地址:https://pan.baidu.com/s/1eSZsXDC 下载好是 ...
- Java本地的项目,怎么可以让别人通过外网访问-内网穿透
2019独角兽企业重金招聘Python工程师标准>>> 一.点击链接 https://natapp.cn/ 注册个免费的账户 NATAPP官网 二.登陆进去以后查看authtoken ...