Python-将数据表中数据导出到excel

‘‘‘
需求:写一个函数,随便输入一个表名,把这个表里面所有的数据,导出到excel里面
思路:
1、‘select * from %s‘ ,查出这个表所有的数据
2、再把所有的数据写到excel  xlwt
‘‘‘

import pymysql,hashlib,xlwt

def op_mysql(sql:str):
    mysql_info = {
        ‘host‘: ‘XXX.XXX.XXX.XXX‘,
        ‘port‘: XXXX,
        ‘password‘: ‘XXXX‘,
        ‘user‘: ‘XXXX‘,
        ‘db‘: ‘XXXX‘,
        ‘charset‘: ‘utf8‘,
        ‘autocommit‘: True
    }
    result = ‘执行完成‘
    conn = pymysql.connect(**mysql_info)
    # cur = conn.cursor(pymysql.cursors.DictCursor) #建立游标
    cur = conn.cursor() #建立游标
    cur.execute(sql)
    field = [ t[0] for t in cur.description ] #获取表里面的所有字段名
    if sql.strip().lower().startswith(‘select‘):
        # result  = cur.fetchone()
        result  = cur.fetchall()
    cur.close()
    conn.close()
    print(‘所有的字段‘,field)
    print(‘所有的数据‘,result)
    result = list(result) #因为返回的是元组,不能修改,所以转成list
    result.insert(0,field) #加入到最前面
    return result

def export_excel(table_name):
    sql =‘select * from %s;‘%table_name
    result = op_mysql(sql)
    book = xlwt.Workbook()
    sheet = book.add_sheet(‘sheet‘)
    for row, line in enumerate(result):
        for col, t in enumerate(line):
            sheet.write(row, col, t)
    book.save(‘%s.xls‘%table_name)
export_excel(‘CJ_test‘)
export_excel(‘app_myuser‘)

import xlwt
book = xlwt.Workbook()
sheet = book.add_sheet(‘sheet‘)l = [
    [1,‘dsk‘,‘xxdfsdfsd‘,0],
    [2,‘ldd‘,‘xxdfsdfsd‘,0],
    [3,‘lsdd‘,‘xxdfsdfsd‘,0],
    [4,‘lsd1‘,‘xxdfsdfsd‘,0],
]

# 方法一:
# row = 0#行号
# for line in l: #外面这个循环,每循环一次,就写excel里面一行
#     # col = 0#列号   [1,‘dsk‘,‘xxdfsdfsd‘,0]
#     col = 0
#     for t in line:#里面这个循环是控制列的,每循环一次就写一列
#         sheet.write(row,col,t)
#         col+=1
#     row+=1
#

# 方法二:
for row,line in enumerate(l):
    for col,t in enumerate(line):
        sheet.write(row,col,t)

book.save(‘user.xls‘)

原文地址:https://www.cnblogs.com/huoxn/p/10919413.html

时间: 2024-08-11 07:49:00

Python-将数据表中数据导出到excel的相关文章

MySQL查询数据表中数据记录(包括多表查询)

MySQL查询数据表中数据记录(包括多表查询) MySQL查询数据表中数据记录(包括多表查询) 转自:http://www.baike369.com/content/?id=5355 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: select selection_list // 要查询的内容,选择哪些列 from table_list // 从什么表中查询,从何处选择行 where primary_

Laravel5.4中将数据表中数据导出excel表格

在composer.json中添加 运行composer update 在config中添加 运行 php artisan vendor:publish 添加配置文件 方法中直接导出 注意:  引入Excel

mysql--对行(表中数据)的增删改查

一.插入数据(增加)insert 1.插入数据(顺序插入) 语法一: INSERT INTO 表名(字段1,字段2,字段3-字段n) VALUES(值1,值2,值3-值n); #指定字段来插入数据,插入的值要和你前面的字段相匹配 语法二: INSERT INTO 表名 VALUES (值1,值2,值3-值n); #不指定字段的话,就按照默认的几个字段来插入数据 2.指定字段插入数据 语法: INSERT INTO 表名(字段1,字段2,字段3-) VALUES (值1,值2,值3-); 3.插入

导出 SQL SERVER 表中数据为脚本

ALTER PROCEDURE [dbo].[Usp_OutputData] @tablename sysname, @outputIdentitycolumn int AS declare @column varchar(3000) declare @columndata varchar(8000) declare @sql varchar(8000) declare @xtype tinyint declare @name sysname declare @objectId int decl

【SQL Sever】将SQL Sever中的一个数据表的数据导出为insert语句

例如:这SQL   Sever中的一张数据表,想要将这张数据表中的数据  转化成一个一个的insert语句存储在txt的文档中,那么不论走到那里这个insert语句一执行,我们就能将这个数据表中的数据插入到另一个地方了. 1>在新建查询中,创建一个对象,这个对象就是用来产生这个对象的,名字叫proc_insert,我们可以创建多个不重名的对象,当然也可以删除这个对象. 1 create proc proc_insert (@tablename varchar(256)) 2 as 3 begin

使用Sqoop1.4.4将MySQL数据库表中数据导入到HDFS中

问题导读:         1.--connect参数作用? 2.使用哪个参数从控制台读取数据库访问密码? 3.Sqoop将关系型数据库表中数据导入HDFS基本参数要求及命令? 4.数据默认导入HDFS文件系统中的路径? 5.--columns参数的作用? 6.--where参数的作用? 一.部分关键参数介绍 参数介绍 --connect <jdbc-uri> 指定关系型数据库JDBC连接字符串 --connection-manager <class-name> 指定数据库使用的管

pl/sql中误删表中数据并提交恢复办法

最近在操作表中数据时,删除了表中数据,但是又想恢复,后来查到了官方的一篇文档,发现还蛮有用的,如下: 在pl/sql中运行,select * from A as of TIMESTAMP to_timestamp('20150401','yyyymmdd'); 此原理是利用Flashback Query这一特性,最常被应用的就是修复误操作的数据了.注意,这并不是说Flashback Query能够恢复数据.Flashback Query本身不会恢复任何操作或修改,也不能告诉你做过什么操作或修改,

Mysql DBA 高级运维学习笔记-删除表中数据

9.11 删除表中数据 命令语法:delete from 表名 where 表达式 实践: (1)删除表student中编号为3的记录 mysql> use zbf Database changed mysql> select * from student; +----+-----------+-----+--------+ | id | name | age | dept | +----+-----------+-----+--------+ | 1 | zbf666| 29 | linux

修改表中数据的两种方法(update改)

1.通过点击按钮来执行修改表中数据.(数据库和表的创建不在详细介绍,请自动阅读数据库和表的创建) 第一种方法:直接使用SQL来操作数据库,调用execSQL(sql)语句 public class MainActivity extends AppCompatActivity { private Button mPudateButton; private MySqliteHelper mMySqliteHelper; private SQLiteDatabase db; @Override pro