精华内容
下载资源
问答
  • 可以导出国家统计局网站公布的统计用区划和城乡划分代码。 修改链接url支持最新版标准导出.
  • 活动纪实平台 springboot,hibernate, swagger,maven组合开发而成的活动纪实...每个单位活动发布量,不同级别,划分维度活动发布量统计,excel实时导出。 多级用户管理 支持4级用户的管理。 pc,移动端自适应显示。
  • 转自https://www.cnblogs.com/chenmh/p/5300370.html介绍 在日常维护工作当中经常会需要对数据进行导出操作,而... 语法:默认不带参数的导出导出文本内容大概如下:创建数据库判断语句-删除表-创建表-锁表-禁用索

    转自https://www.cnblogs.com/chenmh/p/5300370.html

    介绍

     在日常维护工作当中经常会需要对数据进行导出操作,而mysqldump是导出数据过程中使用非常频繁的一个工具;它自带的功能参数非常多,文章中会列举出一些常用的操作,在文章末尾会将所有的参数详细说明列出来。

     

    语法:

    默认不带参数的导出,导出文本内容大概如下:创建数据库判断语句-删除表-创建表-锁表-禁用索引-插入数据-启用索引-解锁表

    Usage: mysqldump [OPTIONS] database [tables]
    OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
    OR     mysqldump [OPTIONS] --all-databases [OPTIONS]

    插入测试数据

    复制代码
    CREATE DATABASE db1 DEFAULT CHARSET utf8;
    USE db1;
    CREATE TABLE a1(id int);
    insert into a1() values(1),(2);
    CREATE TABLE a2(id int);
    insert into a2() values(2);
    CREATE TABLE a3(id int);
    insert into a3() values(3);
    
    
    CREATE DATABASE db2 DEFAULT CHARSET utf8;
    USE db2;
    CREATE TABLE b1(id int);
    insert into b1() values(1);
    CREATE TABLE b2(id int);
    insert into b2() values(2);
    复制代码

     

    1.导出所有数据库

    该命令会导出包括系统数据库在内的所有数据库

    mysqldump -uroot -proot --all-databases >/tmp/all.sql

    2.导出db1、db2两个数据库的所有数据

    mysqldump -uroot -proot --databases db1 db2 >/tmp/user.sql

    3.导出db1中的a1、a2表

    注意导出指定表只能针对一个数据库进行导出,且导出的内容中和导出数据库也不一样,导出指定表的导出文本中没有创建数据库的判断语句,只有删除表-创建表-导入数据

    mysqldump -uroot -proot --databases db1 --tables a1 a2  >/tmp/db1.sql

    4.条件导出,导出db1表a1中id=1的数据

    如果多个表的条件相同可以一次性导出多个表

    字段是整形

    mysqldump -uroot -proot --databases db1 --tables a1 --where='id=1'  >/tmp/a1.sql

    字段是字符串,并且导出的sql中不包含drop table,create table

    mysqldump -uroot -proot --no-create-info --databases db1 --tables a1 --where="id='a'"  >/tmp/a1.sql

    5.生成新的binlog文件,-F

    有时候会希望导出数据之后生成一个新的binlog文件,只需要加上-F参数即可

    mysqldump -uroot -proot --databases db1 -F >/tmp/db1.sql

    6.只导出表结构不导出数据,--no-data

    mysqldump -uroot -proot --no-data --databases db1 >/tmp/db1.sql

    7.跨服务器导出导入数据

    mysqldump --host=h1 -uroot -proot --databases db1 |mysql --host=h2 -uroot -proot db2

    将h1服务器中的db1数据库的所有数据导入到h2中的db2数据库中,db2的数据库必须存在否则会报错

    mysqldump --host=192.168.80.137 -uroot -proot -C --databases test |mysql --host=192.168.80.133 -uroot -proot test 

     加上-C参数可以启用压缩传递。

    8.将主库的binlog位置和文件名追加到导出数据的文件中,--dump-slave

    注意:--dump-slave命令如果当前服务器是从服务器那么使用该命令会执行stop slave来获取master binlog的文件和位置,等备份完后会自动执行start slave启动从服务器。但是如果是大的数据量备份会给从和主的延时变的更大,使用--dump-slave获取到的只是当前的从服务器的数据执行到的主的binglog的位置是(relay_mater_log_file,exec_master_log_pos),而不是主服务器当前的binlog执行的位置,主要是取决于主从的数据延时。

    该参数在在从服务器上执行,相当于执行show slave status。当设置为1时,将会以CHANGE MASTER命令输出到数据文件;设置为2时,会在change前加上注释。

    该选项将会打开--lock-all-tables,除非--single-transaction被指定。

    在执行完后会自动关闭--lock-tables选项。--dump-slave默认是1

    mysqldump -uroot -proot --dump-slave=1 --databases db1 >/tmp/db1.sql

    mysqldump -uroot -proot --dump-slave=2 --database db1 >/tmp/db1.sql

    9.将当前服务器的binlog的位置和文件名追加到输出文件,--master-data

    该参数和--dump-slave方法一样,只是它是记录的是当前服务器的binlog,相当于执行show master status,状态(file,position)的值。

    注意:--master-data不会停止当前服务器的主从服务

    10.--opt

    等同于--add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys 该选项默认开启, 可以用--skip-opt禁用.

    mysqldump -uroot -p --host=localhost --all-databases --opt

    11.保证导出的一致性状态--single-transaction

    该选项在导出数据之前提交一个BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于多版本存储引擎(它不显示加锁通过判断版本来对比数据),仅InnoDB。本选项和--lock-tables 选项是互斥的,因为LOCK TABLES 会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用--quick 选项。

    --quick, -q
    不缓冲查询,直接导出到标准输出。默认为打开状态,使用--skip-quick取消该选项。

    12.--lock-tables, -l

    开始导出前,锁定所有表。用READ LOCAL锁定表以允许MyISAM表并行插入。对于支持事务的表例如InnoDB和BDB,--single-transaction是一个更好的选择,因为它根本不需要锁定表。

    请注意当导出多个数据库时,--lock-tables分别为每个数据库锁定表。因此,该选项不能保证导出文件中的表在数据库之间的逻辑一致性。不同数据库表的导出状态可以完全不同。

    13.导出存储过程和自定义函数--routines, -R

    mysqldump  -uroot -p --host=localhost --all-databases --routines

    14.压缩备份 

    压缩备份
    mysqldump -uroot -proot --databases abc 2>/dev/null |gzip >/abc.sql.gz
    还原
    gunzip -c abc.sql.gz |mysql -uroot -proot abc

     

    参数说明:

    复制代码
    --all-databases  , -A
    导出全部数据库。
    mysqldump  -uroot -p --all-databases
    --all-tablespaces  , -Y
    导出全部表空间。
    mysqldump  -uroot -p --all-databases --all-tablespaces
    --no-tablespaces  , -y
    不导出任何表空间信息。
    mysqldump  -uroot -p --all-databases --no-tablespaces
    --add-drop-database
    每个数据库创建之前添加drop数据库语句。
    mysqldump  -uroot -p --all-databases --add-drop-database
    --add-drop-table
    每个数据表创建之前添加drop数据表语句。(默认为打开状态,使用--skip-add-drop-table取消选项)
    mysqldump  -uroot -p --all-databases  (默认添加drop语句)
    mysqldump  -uroot -p --all-databases –skip-add-drop-table  (取消drop语句)
    --add-locks
    在每个表导出之前增加LOCK TABLES并且之后UNLOCK  TABLE。(默认为打开状态,使用--skip-add-locks取消选项)
    mysqldump  -uroot -p --all-databases  (默认添加LOCK语句)
    mysqldump  -uroot -p --all-databases –skip-add-locks   (取消LOCK语句)
    --allow-keywords
    允许创建是关键词的列名字。这由表名前缀于每个列名做到。
    mysqldump  -uroot -p --all-databases --allow-keywords
    --apply-slave-statements'CHANGE MASTER'前添加'STOP SLAVE',并且在导出的最后添加'START SLAVE'。
    mysqldump  -uroot -p --all-databases --apply-slave-statements
    --character-sets-dir
    字符集文件的目录
    mysqldump  -uroot -p --all-databases  --character-sets-dir=/usr/local/mysql/share/mysql/charsets
    --comments
    附加注释信息。默认为打开,可以用--skip-comments取消
    mysqldump  -uroot -p --all-databases  (默认记录注释)
    mysqldump  -uroot -p --all-databases --skip-comments   (取消注释)
    --compatible
    导出的数据将和其它数据库或旧版本的MySQL 相兼容。值可以为ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options等,
    要使用几个值,用逗号将它们隔开。它并不保证能完全兼容,而是尽量兼容。
    mysqldump  -uroot -p --all-databases --compatible=ansi
    --compact
    导出更少的输出信息(用于调试)。去掉注释和头尾等结构。可以使用选项:--skip-add-drop-table  --skip-add-locks --skip-comments --skip-disable-keys
    mysqldump  -uroot -p --all-databases --compact
    --complete-insert,  -c
    使用完整的insert语句(包含列名称)。这么做能提高插入效率,但是可能会受到max_allowed_packet参数的影响而导致插入失败。
    mysqldump  -uroot -p --all-databases --complete-insert
    --compress, -C
    在客户端和服务器之间启用压缩传递所有信息
    mysqldump  -uroot -p --all-databases --compress
    --create-options,  -a
    在CREATE TABLE语句中包括所有MySQL特性选项。(默认为打开状态)
    mysqldump  -uroot -p --all-databases
    --databases,  -B
    导出几个数据库。参数后面所有名字参量都被看作数据库名。
    mysqldump  -uroot -p --databases test mysql
    --debug
    输出debug信息,用于调试。默认值为:d:t,/tmp/mysqldump.trace
    mysqldump  -uroot -p --all-databases --debug
    mysqldump  -uroot -p --all-databases --debug=” d:t,/tmp/debug.trace”
    --debug-check
    检查内存和打开文件使用说明并退出。
    mysqldump  -uroot -p --all-databases --debug-check
    --debug-info
    输出调试信息并退出
    mysqldump  -uroot -p --all-databases --debug-info
    --default-character-set
    设置默认字符集,默认值为utf8
    mysqldump  -uroot -p --all-databases --default-character-set=utf8
    --delayed-insert
    采用延时插入方式(INSERT DELAYED)导出数据
    mysqldump  -uroot -p --all-databases --delayed-insert
    --delete-master-logs
    master备份后删除日志. 这个参数将自动激活--master-data。
    mysqldump  -uroot -p --all-databases --delete-master-logs
    --disable-keys
    对于每个表,用/*!40000 ALTER TABLE tbl_name DISABLE KEYS */;和/*!40000 ALTER TABLE tbl_name ENABLE KEYS */;语句引用INSERT语句。这样可以更快地导入dump出来的文件,因为它是在插入所有行后创建索引的。该选项只适合MyISAM表,默认为打开状态。
    mysqldump  -uroot -p --all-databases 
    --dump-slave
    该选项将主的binlog位置和文件名追加到导出数据的文件中(show slave status)。设置为1时,将会以CHANGE MASTER命令输出到数据文件;设置为2时,会在change前加上注释。该选项将会打开--lock-all-tables,除非--single-transaction被指定。该选项会自动关闭--lock-tables选项。默认值为0。
    mysqldump  -uroot -p --all-databases --dump-slave=1
    mysqldump  -uroot -p --all-databases --dump-slave=2
    
    --master-data
    该选项将当前服务器的binlog的位置和文件名追加到输出文件中(show master status)。如果为1,将会输出CHANGE MASTER 命令;如果为2,输出的CHANGE  MASTER命令前添加注释信息。该选项将打开--lock-all-tables 选项,除非--single-transaction也被指定(在这种情况下,全局读锁在开始导出时获得很短的时间;其他内容参考下面的--single-transaction选项)。该选项自动关闭--lock-tables选项。
    mysqldump  -uroot -p --host=localhost --all-databases --master-data=1;
    mysqldump  -uroot -p --host=localhost --all-databases --master-data=2;
    --events, -E
    导出事件。
    mysqldump  -uroot -p --all-databases --events
    --extended-insert,  -e
    使用具有多个VALUES列的INSERT语法。这样使导出文件更小,并加速导入时的速度。默认为打开状态,使用--skip-extended-insert取消选项。
    mysqldump  -uroot -p --all-databases
    mysqldump  -uroot -p --all-databases--skip-extended-insert   (取消选项)
    --fields-terminated-by
    导出文件中忽略给定字段。与--tab选项一起使用,不能用于--databases和--all-databases选项
    mysqldump  -uroot -p test test --tab=”/home/mysql” --fields-terminated-by=”#”
    --fields-enclosed-by
    输出文件中的各个字段用给定字符包裹。与--tab选项一起使用,不能用于--databases和--all-databases选项
    mysqldump  -uroot -p test test --tab=”/home/mysql” --fields-enclosed-by=”#”
    --fields-optionally-enclosed-by
    输出文件中的各个字段用给定字符选择性包裹。与--tab选项一起使用,不能用于--databases和--all-databases选项
    mysqldump  -uroot -p test test --tab=”/home/mysql”  --fields-enclosed-by=”#” --fields-optionally-enclosed-by  =”#”
    --fields-escaped-by
    输出文件中的各个字段忽略给定字符。与--tab选项一起使用,不能用于--databases和--all-databases选项
    mysqldump  -uroot -p mysql user --tab=”/home/mysql” --fields-escaped-by=”#”
    --flush-logs
    开始导出之前刷新日志。
    请注意:假如一次导出多个数据库(使用选项--databases或者--all-databases),将会逐个数据库刷新日志。除使用--lock-all-tables或者--master-data外。在这种情况下,日志将会被刷新一次,相应的所以表同时被锁定。因此,如果打算同时导出和刷新日志应该使用--lock-all-tables 或者--master-data 和--flush-logs。
    mysqldump  -uroot -p --all-databases --flush-logs
    --flush-privileges
    在导出mysql数据库之后,发出一条FLUSH  PRIVILEGES 语句。为了正确恢复,该选项应该用于导出mysql数据库和依赖mysql数据库数据的任何时候。
    mysqldump  -uroot -p --all-databases --flush-privileges
    --force
    在导出过程中忽略出现的SQL错误。
    mysqldump  -uroot -p --all-databases --force
    --help
    显示帮助信息并退出。
    mysqldump  --help
    --hex-blob
    使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用该选项。影响到的字段类型有BINARY、VARBINARY、BLOB。
    mysqldump  -uroot -p --all-databases --hex-blob
    --host, -h
    需要导出的主机信息
    mysqldump  -uroot -p --host=localhost --all-databases
    --ignore-table
    不导出指定表。指定忽略多个表时,需要重复多次,每次一个表。每个表必须同时指定数据库和表名。例如:--ignore-table=database.table1 --ignore-table=database.table2 ……
    mysqldump  -uroot -p --host=localhost --all-databases --ignore-table=mysql.user
    --include-master-host-port--dump-slave产生的'CHANGE  MASTER TO..'语句中增加'MASTER_HOST=<host>,MASTER_PORT=<port>'  
    mysqldump  -uroot -p --host=localhost --all-databases --include-master-host-port
    --insert-ignore
    在插入行时使用INSERT IGNORE语句.
    mysqldump  -uroot -p --host=localhost --all-databases --insert-ignore
    --lines-terminated-by
    输出文件的每行用给定字符串划分。与--tab选项一起使用,不能用于--databases和--all-databases选项。
    mysqldump  -uroot -p --host=localhost test test --tab=”/tmp/mysql”  --lines-terminated-by=”##”
    --lock-all-tables,  -x
    提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭--single-transaction 和--lock-tables 选项。
    mysqldump  -uroot -p --host=localhost --all-databases --lock-all-tables
    --lock-tables,  -l
    开始导出前,锁定所有表。用READ  LOCAL锁定表以允许MyISAM表并行插入。对于支持事务的表例如InnoDB和BDB,--single-transaction是一个更好的选择,因为它根本不需要锁定表。
    请注意当导出多个数据库时,--lock-tables分别为每个数据库锁定表。因此,该选项不能保证导出文件中的表在数据库之间的逻辑一致性。不同数据库表的导出状态可以完全不同。
    mysqldump  -uroot -p --host=localhost --all-databases --lock-tables
    --log-error
    附加警告和错误信息到给定文件
    mysqldump  -uroot -p --host=localhost --all-databases  --log-error=/tmp/mysqldump_error_log.err
    --max_allowed_packet
    服务器发送和接受的最大包长度。
    mysqldump  -uroot -p --host=localhost --all-databases --max_allowed_packet=10240
    --net_buffer_length
    TCP/IP和socket连接的缓存大小。
    mysqldump  -uroot -p --host=localhost --all-databases --net_buffer_length=1024
    --no-autocommit
    使用autocommit/commit 语句包裹表。
    mysqldump  -uroot -p --host=localhost --all-databases --no-autocommit
    --no-create-db,  -n
    只导出数据,而不添加CREATE DATABASE 语句。
    mysqldump  -uroot -p --host=localhost --all-databases --no-create-db
    --no-create-info,  -t
    只导出数据,而不添加CREATE TABLE 语句。
    mysqldump  -uroot -p --host=localhost --all-databases --no-create-info
    --no-data, -d
    不导出任何数据,只导出数据库表结构。
    mysqldump  -uroot -p --host=localhost --all-databases --no-data
    --no-set-names,  -N
    等同于--skip-set-charset
    mysqldump  -uroot -p --host=localhost --all-databases --no-set-names
    --opt
    等同于--add-drop-table,  --add-locks, --create-options, --quick, --extended-insert, --lock-tables,  --set-charset, --disable-keys 该选项默认开启,  可以用--skip-opt禁用.
    mysqldump  -uroot -p --host=localhost --all-databases --opt
    --order-by-primary
    如果存在主键,或者第一个唯一键,对每个表的记录进行排序。在导出MyISAM表到InnoDB表时有效,但会使得导出工作花费很长时间。 
    mysqldump  -uroot -p --host=localhost --all-databases --order-by-primary
    --password, -p
    连接数据库密码
    --pipe(windows系统可用)
    使用命名管道连接mysql
    mysqldump  -uroot -p --host=localhost --all-databases --pipe
    --port, -P
    连接数据库端口号
    --protocol
    使用的连接协议,包括:tcp, socket, pipe, memory.
    mysqldump  -uroot -p --host=localhost --all-databases --protocol=tcp
    --quick, -q
    不缓冲查询,直接导出到标准输出。默认为打开状态,使用--skip-quick取消该选项。
    mysqldump  -uroot -p --host=localhost --all-databases 
    mysqldump  -uroot -p --host=localhost --all-databases --skip-quick
    --quote-names,-Q
    使用(`)引起表和列名。默认为打开状态,使用--skip-quote-names取消该选项。
    mysqldump  -uroot -p --host=localhost --all-databases
    mysqldump  -uroot -p --host=localhost --all-databases --skip-quote-names
    --replace
    使用REPLACE INTO 取代INSERT INTO.
    mysqldump  -uroot -p --host=localhost --all-databases --replace
    --result-file,  -r
    直接输出到指定文件中。该选项应该用在使用回车换行对(\\r\\n)换行的系统上(例如:DOS,Windows)。该选项确保只有一行被使用。
    mysqldump  -uroot -p --host=localhost --all-databases --result-file=/tmp/mysqldump_result_file.txt
    --routines, -R
    导出存储过程以及自定义函数。
    mysqldump  -uroot -p --host=localhost --all-databases --routines
    --set-charset
    添加'SET NAMES  default_character_set'到输出文件。默认为打开状态,使用--skip-set-charset关闭选项。
    mysqldump  -uroot -p --host=localhost --all-databases 
    mysqldump  -uroot -p --host=localhost --all-databases --skip-set-charset
    --single-transaction
    该选项在导出数据之前提交一个BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于多版本存储引擎,仅InnoDB。本选项和--lock-tables 选项是互斥的,因为LOCK  TABLES 会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用--quick 选项。
    mysqldump  -uroot -p --host=localhost --all-databases --single-transaction
    --dump-date
    将导出时间添加到输出文件中。默认为打开状态,使用--skip-dump-date关闭选项。
    mysqldump  -uroot -p --host=localhost --all-databases
    mysqldump  -uroot -p --host=localhost --all-databases --skip-dump-date
    --skip-opt
    禁用–opt选项.
    mysqldump  -uroot -p --host=localhost --all-databases --skip-opt
    --socket,-S
    指定连接mysql的socket文件位置,默认路径/tmp/mysql.sock
    mysqldump  -uroot -p --host=localhost --all-databases --socket=/tmp/mysqld.sock
    --tab,-T
    为每个表在给定路径创建tab分割的文本文件。注意:仅仅用于mysqldump和mysqld服务器运行在相同机器上。注意使用--tab不能指定--databases参数
    mysqldump  -uroot -p --host=localhost test test --tab="/home/mysql"
    --tables
    覆盖--databases (-B)参数,指定需要导出的表名,在后面的版本会使用table取代tables。
    mysqldump  -uroot -p --host=localhost --databases test --tables test
    --triggers
    导出触发器。该选项默认启用,用--skip-triggers禁用它。
    mysqldump  -uroot -p --host=localhost --all-databases --triggers
    --tz-utc
    在导出顶部设置时区TIME_ZONE='+00:00' ,以保证在不同时区导出的TIMESTAMP 数据或者数据被移动其他时区时的正确性。
    mysqldump  -uroot -p --host=localhost --all-databases --tz-utc
    --user, -u
    指定连接的用户名。
    --verbose, --v
    输出多种平台信息。
    --version, -V
    输出mysqldump版本信息并退出
    --where, -w
    只转储给定的WHERE条件选择的记录。请注意如果条件包含命令解释符专用空格或字符,一定要将条件引用起来。
    mysqldump  -uroot -p --host=localhost --all-databases --where=” user=’root’”
    --xml, -X
    导出XML格式.
    mysqldump  -uroot -p --host=localhost --all-databases --xml
    --plugin_dir
    客户端插件的目录,用于兼容不同的插件版本。
    mysqldump  -uroot -p --host=localhost --all-databases --plugin_dir=”/usr/local/lib/plugin”
    --default_auth
    客户端插件默认使用权限。
    mysqldump  -uroot -p --host=localhost --all-databases --default-auth=”/usr/local/lib/plugin/<PLUGIN>”
    复制代码

    错误处理 

    1.unknown option '--no-beep' 

    第一种方法:删除my.ini[client]下的 no-beep 参数;
    第二种方法:在 mysqldump 后加--no-defaults参数 。

     

    总结

    文章中列举了一些常用的导出操作,还有很多其它的参数也会经常用到,包括“--add-drop-database”,“--apply-slave-statements”,“--triggers”等。客户端的导入导出功能也是不错的选择,比如workbench、navicat;其中navicat的导出向导中可以有很多文件格式可以选择。

    --tab的快速导出导入数据是个不错的方法,它会在指定的目录下生成一个sql表结构文件和一个text数据文件


    展开全文
  • 前言: ...jQuery表格导出Excel文件 先来看看我们的层级划分: 如图所示: demo.css 代码如下: body, html { font-size: 100%; padding: 0; margin: 0;} /* Reset */ *, *:after, *:before { -w...

    前言:

    我在这里给大家介绍一下我们能用代码实现的最简单的两种转换为Excel文件以及Word文档的方法。

    jQuery表格导出Excel文件

    先来看看我们的层级划分:
    如图所示:
    在这里插入图片描述
    demo.css
    代码如下:

    body, html { font-size: 100%; 	padding: 0; margin: 0;}
    
    /* Reset */
    *,
    *:after,
    *:before {
    	-webkit-box-sizing: border-box;
    	-moz-box-sizing: border-box;
    	box-sizing: border-box;
    }
    
    /* Clearfix hack by Nicolas Gallagher: http://nicolasgallagher.com/micro-clearfix-hack/ */
    .clearfix:before,
    .clearfix:after {
    	content: " ";
    	display: table;
    }
    
    .clearfix:after {
    	clear: both;
    }
    
    body{
    	font-family: "Microsoft YaHei","Segoe UI", "Lucida Grande", Helvetica, Arial,sans-serif;
    }
    

    FileSaver.js
    代码如下:

    var saveAs=saveAs||"undefined"!==typeof navigator&&navigator.msSaveOrOpenBlob&&navigator.msSaveOrOpenBlob.bind(navigator)||function(a){"use strict";if("undefined"===typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var k=a.document,n=k.createElementNS("http://www.w3.org/1999/xhtml","a"),w="download"in n,x=function(c){var e=k.createEvent("MouseEvents");e.initMouseEvent("click",!0,!1,a,0,0,0,0,0,!1,!1,!1,!1,0,null);c.dispatchEvent(e)},q=a.webkitRequestFileSystem,u=a.requestFileSystem||q||a.mozRequestFileSystem,
    y=function(c){(a.setImmediate||a.setTimeout)(function(){throw c;},0)},r=0,s=function(c){var e=function(){"string"===typeof c?(a.URL||a.webkitURL||a).revokeObjectURL(c):c.remove()};a.chrome?e():setTimeout(e,500)},t=function(c,a,d){a=[].concat(a);for(var b=a.length;b--;){var l=c["on"+a[b]];if("function"===typeof l)try{l.call(c,d||c)}catch(f){y(f)}}},m=function(c,e){var d=this,b=c.type,l=!1,f,p,k=function(){t(d,["writestart","progress","write","writeend"])},g=function(){if(l||!f)f=(a.URL||a.webkitURL||
    a).createObjectURL(c);p?p.location.href=f:void 0==a.open(f,"_blank")&&"undefined"!==typeof safari&&(a.location.href=f);d.readyState=d.DONE;k();s(f)},h=function(a){return function(){if(d.readyState!==d.DONE)return a.apply(this,arguments)}},m={create:!0,exclusive:!1},v;d.readyState=d.INIT;e||(e="download");if(w)f=(a.URL||a.webkitURL||a).createObjectURL(c),n.href=f,n.download=e,x(n),d.readyState=d.DONE,k(),s(f);else{a.chrome&&b&&"application/octet-stream"!==b&&(v=c.slice||c.webkitSlice,c=v.call(c,0,
    c.size,"application/octet-stream"),l=!0);q&&"download"!==e&&(e+=".download");if("application/octet-stream"===b||q)p=a;u?(r+=c.size,u(a.TEMPORARY,r,h(function(a){a.root.getDirectory("saved",m,h(function(a){var b=function(){a.getFile(e,m,h(function(a){a.createWriter(h(function(b){b.onwriteend=function(b){p.location.href=a.toURL();d.readyState=d.DONE;t(d,"writeend",b);s(a)};b.onerror=function(){var a=b.error;a.code!==a.ABORT_ERR&&g()};["writestart","progress","write","abort"].forEach(function(a){b["on"+
    a]=d["on"+a]});b.write(c);d.abort=function(){b.abort();d.readyState=d.DONE};d.readyState=d.WRITING}),g)}),g)};a.getFile(e,{create:!1},h(function(a){a.remove();b()}),h(function(a){a.code===a.NOT_FOUND_ERR?b():g()}))}),g)}),g)):g()}},b=m.prototype;b.abort=function(){this.readyState=this.DONE;t(this,"abort")};b.readyState=b.INIT=0;b.WRITING=1;b.DONE=2;b.error=b.onwritestart=b.onprogress=b.onwrite=b.onabort=b.onerror=b.onwriteend=null;return function(a,b){return new m(a,b)}}}("undefined"!==typeof self&&
    self||"undefined"!==typeof window&&window||this.content);"undefined"!==typeof module&&null!==module?module.exports=saveAs:"undefined"!==typeof define&&null!==define&&null!=define.amd&&define([],function(){return saveAs});
    

    demo.page.js
    代码如下:

    $(document).ready(function () {
        excel = new ExcelGen({
            "src_id": "test_table",
            "show_header": true
        });
        $("#generate-excel").click(function () {
            excel.generate();
        });
    });
    

    excel-gen.js
    代码如下:

    /*require jszip.js FileSaver.js jquery*/
    
    /* excel-gen.js
    
    Client-Side JavaScript Code for creating Excel Spreadsheet tables from HTML Tables
    Works on all browsers!!!!!
    
    ---------------
    - MIT License -
    ---------------
    Copyright 2018 ECSC, ltd.
    
    Permission is hereby granted, free of charge, to any person obtaining a copy of this 
    software and associated documentation files (the "Software"), to deal in the Software 
    without restriction, including without limitation the rights to use, copy, modify, 
    merge, publish, distribute, sublicense, and/or sell copies of the Software, and to 
    permit persons to whom the Software is furnished to do so, subject to the following 
    conditions:
    
    The above copyright notice and this permission notice shall be included in all 
    copies or substantial portions of the Software.
    
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 
    INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
    PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 
    HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 
    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
    OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    
    Author Paul Warren */
    
    //Initial XLSX Generation assumes default Workbook with sheet1, sheet2 and sheet3 inside.  Will upgrade to be more flexible in future releases.
    
    /**
    * Excel Generator.
    *
    * Creates .xlsx from HTML Table.
    *
    */
    function ExcelGen(options) {
        //internal access to this
        me = this;
    
        this.defaultOptions = {
            "src_id": "",
            "type": "table",
            "show_header": false,
            "header_row": null,
            "body_rows": null
        }
    
        this.options = {};
    
        this.col_count = 0;
        this.columns = [];
        this.headers = [];
        this.rows = [];
        this.srcElem;
    
        this.static_components = {
            "_rels": {
                ".rels": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFJlbGF0aW9uc2hpcHMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcyI+PFJlbGF0aW9uc2hpcCBJZD0icklkMyIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9leHRlbmRlZC1wcm9wZXJ0aWVzIiBUYXJnZXQ9ImRvY1Byb3BzL2FwcC54bWwiLz48UmVsYXRpb25zaGlwIElkPSJySWQyIiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMvbWV0YWRhdGEvY29yZS1wcm9wZXJ0aWVzIiBUYXJnZXQ9ImRvY1Byb3BzL2NvcmUueG1sIi8+PFJlbGF0aW9uc2hpcCBJZD0icklkMSIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9vZmZpY2VEb2N1bWVudCIgVGFyZ2V0PSJ4bC93b3JrYm9vay54bWwiLz48L1JlbGF0aW9uc2hpcHM+"
            },
            "docProps": {
                "app.xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFByb3BlcnRpZXMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L2V4dGVuZGVkLXByb3BlcnRpZXMiIHhtbG5zOnZ0PSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9kb2NQcm9wc1ZUeXBlcyI+PEFwcGxpY2F0aW9uPk1pY3Jvc29mdCBFeGNlbDwvQXBwbGljYXRpb24+PERvY1NlY3VyaXR5PjA8L0RvY1NlY3VyaXR5PjxTY2FsZUNyb3A+ZmFsc2U8L1NjYWxlQ3JvcD48SGVhZGluZ1BhaXJzPjx2dDp2ZWN0b3Igc2l6ZT0iMiIgYmFzZVR5cGU9InZhcmlhbnQiPjx2dDp2YXJpYW50Pjx2dDpscHN0cj5Xb3Jrc2hlZXRzPC92dDpscHN0cj48L3Z0OnZhcmlhbnQ+PHZ0OnZhcmlhbnQ+PHZ0Omk0PjM8L3Z0Omk0PjwvdnQ6dmFyaWFudD48L3Z0OnZlY3Rvcj48L0hlYWRpbmdQYWlycz48VGl0bGVzT2ZQYXJ0cz48dnQ6dmVjdG9yIHNpemU9IjMiIGJhc2VUeXBlPSJscHN0ciI+PHZ0Omxwc3RyPlNoZWV0MTwvdnQ6bHBzdHI+PHZ0Omxwc3RyPlNoZWV0MjwvdnQ6bHBzdHI+PHZ0Omxwc3RyPlNoZWV0MzwvdnQ6bHBzdHI+PC92dDp2ZWN0b3I+PC9UaXRsZXNPZlBhcnRzPjxDb21wYW55PjwvQ29tcGFueT48TGlua3NVcFRvRGF0ZT5mYWxzZTwvTGlua3NVcFRvRGF0ZT48U2hhcmVkRG9jPmZhbHNlPC9TaGFyZWREb2M+PEh5cGVybGlua3NDaGFuZ2VkPmZhbHNlPC9IeXBlcmxpbmtzQ2hhbmdlZD48QXBwVmVyc2lvbj4xNC4wMzAwPC9BcHBWZXJzaW9uPjwvUHJvcGVydGllcz4=",
                "core.xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPGNwOmNvcmVQcm9wZXJ0aWVzIHhtbG5zOmNwPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L21ldGFkYXRhL2NvcmUtcHJvcGVydGllcyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpkY3Rlcm1zPSJodHRwOi8vcHVybC5vcmcvZGMvdGVybXMvIiB4bWxuczpkY21pdHlwZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlLyIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+PGRjOmNyZWF0b3I+SmF2YVNjcmlwdCBFeGNlbCBHZW5lcmF0b3I8L2RjOmNyZWF0b3I+PGNwOmxhc3RNb2RpZmllZEJ5PkphdmFTY3JpcHQgRXhjZWwgR2VuZXJhdG9yPC9jcDpsYXN0TW9kaWZpZWRCeT48ZGN0ZXJtczpjcmVhdGVkIHhzaTp0eXBlPSJkY3Rlcm1zOlczQ0RURiI+MjAxOC0wMS0xNVQxNzo0NjowNVo8L2RjdGVybXM6Y3JlYXRlZD48ZGN0ZXJtczptb2RpZmllZCB4c2k6dHlwZT0iZGN0ZXJtczpXM0NEVEYiPjIwMTgtMDEtMTVUMTc6NDg6MTZaPC9kY3Rlcm1zOm1vZGlmaWVkPjwvY3A6Y29yZVByb3BlcnRpZXM+"
            },
            "xl": {
                "_rels": {
                    "workbook.xml.rels": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFJlbGF0aW9uc2hpcHMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcyI+PFJlbGF0aW9uc2hpcCBJZD0icklkMyIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy93b3Jrc2hlZXQiIFRhcmdldD0id29ya3NoZWV0cy9zaGVldDMueG1sIi8+PFJlbGF0aW9uc2hpcCBJZD0icklkMiIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy93b3Jrc2hlZXQiIFRhcmdldD0id29ya3NoZWV0cy9zaGVldDIueG1sIi8+PFJlbGF0aW9uc2hpcCBJZD0icklkMSIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy93b3Jrc2hlZXQiIFRhcmdldD0id29ya3NoZWV0cy9zaGVldDEueG1sIi8+PFJlbGF0aW9uc2hpcCBJZD0icklkNiIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9zaGFyZWRTdHJpbmdzIiBUYXJnZXQ9InNoYXJlZFN0cmluZ3MueG1sIi8+PFJlbGF0aW9uc2hpcCBJZD0icklkNSIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9zdHlsZXMiIFRhcmdldD0ic3R5bGVzLnhtbCIvPjxSZWxhdGlvbnNoaXAgSWQ9InJJZDQiIFR5cGU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvdGhlbWUiIFRhcmdldD0idGhlbWUvdGhlbWUxLnhtbCIvPjwvUmVsYXRpb25zaGlwcz4="
                },
                "theme": {
                    "theme1.xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPGE6dGhlbWUgeG1sbnM6YT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL2RyYXdpbmdtbC8yMDA2L21haW4iIG5hbWU9Ik9mZmljZSBUaGVtZSI+PGE6dGhlbWVFbGVtZW50cz48YTpjbHJTY2hlbWUgbmFtZT0iT2ZmaWNlIj48YTpkazE+PGE6c3lzQ2xyIHZhbD0id2luZG93VGV4dCIgbGFzdENscj0iMDAwMDAwIi8+PC9hOmRrMT48YTpsdDE+PGE6c3lzQ2xyIHZhbD0id2luZG93IiBsYXN0Q2xyPSJGRkZGRkYiLz48L2E6bHQxPjxhOmRrMj48YTpzcmdiQ2xyIHZhbD0iMUY0OTdEIi8+PC9hOmRrMj48YTpsdDI+PGE6c3JnYkNsciB2YWw9IkVFRUNFMSIvPjwvYTpsdDI+PGE6YWNjZW50MT48YTpzcmdiQ2xyIHZhbD0iNEY4MUJEIi8+PC9hOmFjY2VudDE+PGE6YWNjZW50Mj48YTpzcmdiQ2xyIHZhbD0iQzA1MDREIi8+PC9hOmFjY2VudDI+PGE6YWNjZW50Mz48YTpzcmdiQ2xyIHZhbD0iOUJCQjU5Ii8+PC9hOmFjY2VudDM+PGE6YWNjZW50ND48YTpzcmdiQ2xyIHZhbD0iODA2NEEyIi8+PC9hOmFjY2VudDQ+PGE6YWNjZW50NT48YTpzcmdiQ2xyIHZhbD0iNEJBQ0M2Ii8+PC9hOmFjY2VudDU+PGE6YWNjZW50Nj48YTpzcmdiQ2xyIHZhbD0iRjc5NjQ2Ii8+PC9hOmFjY2VudDY+PGE6aGxpbms+PGE6c3JnYkNsciB2YWw9IjAwMDBGRiIvPjwvYTpobGluaz48YTpmb2xIbGluaz48YTpzcmdiQ2xyIHZhbD0iODAwMDgwIi8+PC9hOmZvbEhsaW5rPjwvYTpjbHJTY2hlbWU+PGE6Zm9udFNjaGVtZSBuYW1lPSJPZmZpY2UiPjxhOm1ham9yRm9udD48YTpsYXRpbiB0eXBlZmFjZT0iQ2FtYnJpYSIvPjxhOmVhIHR5cGVmYWNlPSIiLz48YTpjcyB0eXBlZmFjZT0iIi8+PGE6Zm9udCBzY3JpcHQ9IkpwYW4iIHR5cGVmYWNlPSLvvK3vvLMg77yw44K044K344OD44KvIi8+PGE6Zm9udCBzY3JpcHQ9IkhhbmciIHR5cGVmYWNlPSLrp5HsnYAg6rOg65SVIi8+PGE6Zm9udCBzY3JpcHQ9IkhhbnMiIHR5cGVmYWNlPSLlrovkvZMiLz48YTpmb250IHNjcmlwdD0iSGFudCIgdHlwZWZhY2U9IuaWsOe0sOaYjumrlCIvPjxhOmZvbnQgc2NyaXB0PSJBcmFiIiB0eXBlZmFjZT0iVGltZXMgTmV3IFJvbWFuIi8+PGE6Zm9udCBzY3JpcHQ9IkhlYnIiIHR5cGVmYWNlPSJUaW1lcyBOZXcgUm9tYW4iLz48YTpmb250IHNjcmlwdD0iVGhhaSIgdHlwZWZhY2U9IlRhaG9tYSIvPjxhOmZvbnQgc2NyaXB0PSJFdGhpIiB0eXBlZmFjZT0iTnlhbGEiLz48YTpmb250IHNjcmlwdD0iQmVuZyIgdHlwZWZhY2U9IlZyaW5kYSIvPjxhOmZvbnQgc2NyaXB0PSJHdWpyIiB0eXBlZmFjZT0iU2hydXRpIi8+PGE6Zm9udCBzY3JpcHQ9IktobXIiIHR5cGVmYWNlPSJNb29sQm9yYW4iLz48YTpmb250IHNjcmlwdD0iS25kYSIgdHlwZWZhY2U9IlR1bmdhIi8+PGE6Zm9udCBzY3JpcHQ9Ikd1cnUiIHR5cGVmYWNlPSJSYWF2aSIvPjxhOmZvbnQgc2NyaXB0PSJDYW5zIiB0eXBlZmFjZT0iRXVwaGVtaWEiLz48YTpmb250IHNjcmlwdD0iQ2hlciIgdHlwZWZhY2U9IlBsYW50YWdlbmV0IENoZXJva2VlIi8+PGE6Zm9udCBzY3JpcHQ9IllpaWkiIHR5cGVmYWNlPSJNaWNyb3NvZnQgWWkgQmFpdGkiLz48YTpmb250IHNjcmlwdD0iVGlidCIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBIaW1hbGF5YSIvPjxhOmZvbnQgc2NyaXB0PSJUaGFhIiB0eXBlZmFjZT0iTVYgQm9saSIvPjxhOmZvbnQgc2NyaXB0PSJEZXZhIiB0eXBlZmFjZT0iTWFuZ2FsIi8+PGE6Zm9udCBzY3JpcHQ9IlRlbHUiIHR5cGVmYWNlPSJHYXV0YW1pIi8+PGE6Zm9udCBzY3JpcHQ9IlRhbWwiIHR5cGVmYWNlPSJMYXRoYSIvPjxhOmZvbnQgc2NyaXB0PSJTeXJjIiB0eXBlZmFjZT0iRXN0cmFuZ2VsbyBFZGVzc2EiLz48YTpmb250IHNjcmlwdD0iT3J5YSIgdHlwZWZhY2U9IkthbGluZ2EiLz48YTpmb250IHNjcmlwdD0iTWx5bSIgdHlwZWZhY2U9IkthcnRpa2EiLz48YTpmb250IHNjcmlwdD0iTGFvbyIgdHlwZWZhY2U9IkRva0NoYW1wYSIvPjxhOmZvbnQgc2NyaXB0PSJTaW5oIiB0eXBlZmFjZT0iSXNrb29sYSBQb3RhIi8+PGE6Zm9udCBzY3JpcHQ9Ik1vbmciIHR5cGVmYWNlPSJNb25nb2xpYW4gQmFpdGkiLz48YTpmb250IHNjcmlwdD0iVmlldCIgdHlwZWZhY2U9IlRpbWVzIE5ldyBSb21hbiIvPjxhOmZvbnQgc2NyaXB0PSJVaWdoIiB0eXBlZmFjZT0iTWljcm9zb2Z0IFVpZ2h1ciIvPjxhOmZvbnQgc2NyaXB0PSJHZW9yIiB0eXBlZmFjZT0iU3lsZmFlbiIvPjwvYTptYWpvckZvbnQ+PGE6bWlub3JGb250PjxhOmxhdGluIHR5cGVmYWNlPSJDYWxpYnJpIi8+PGE6ZWEgdHlwZWZhY2U9IiIvPjxhOmNzIHR5cGVmYWNlPSIiLz48YTpmb250IHNjcmlwdD0iSnBhbiIgdHlwZWZhY2U9Iu+8re+8syDvvLDjgrTjgrfjg4Pjgq8iLz48YTpmb250IHNjcmlwdD0iSGFuZyIgdHlwZWZhY2U9IuunkeydgCDqs6DrlJUiLz48YTpmb250IHNjcmlwdD0iSGFucyIgdHlwZWZhY2U9IuWui+S9kyIvPjxhOmZvbnQgc2NyaXB0PSJIYW50IiB0eXBlZmFjZT0i5paw57Sw5piO6auUIi8+PGE6Zm9udCBzY3JpcHQ9IkFyYWIiIHR5cGVmYWNlPSJBcmlhbCIvPjxhOmZvbnQgc2NyaXB0PSJIZWJyIiB0eXBlZmFjZT0iQXJpYWwiLz48YTpmb250IHNjcmlwdD0iVGhhaSIgdHlwZWZhY2U9IlRhaG9tYSIvPjxhOmZvbnQgc2NyaXB0PSJFdGhpIiB0eXBlZmFjZT0iTnlhbGEiLz48YTpmb250IHNjcmlwdD0iQmVuZyIgdHlwZWZhY2U9IlZyaW5kYSIvPjxhOmZvbnQgc2NyaXB0PSJHdWpyIiB0eXBlZmFjZT0iU2hydXRpIi8+PGE6Zm9udCBzY3JpcHQ9IktobXIiIHR5cGVmYWNlPSJEYXVuUGVuaCIvPjxhOmZvbnQgc2NyaXB0PSJLbmRhIiB0eXBlZmFjZT0iVHVuZ2EiLz48YTpmb250IHNjcmlwdD0iR3VydSIgdHlwZWZhY2U9IlJhYXZpIi8+PGE6Zm9udCBzY3JpcHQ9IkNhbnMiIHR5cGVmYWNlPSJFdXBoZW1pYSIvPjxhOmZvbnQgc2NyaXB0PSJDaGVyIiB0eXBlZmFjZT0iUGxhbnRhZ2VuZXQgQ2hlcm9rZWUiLz48YTpmb250IHNjcmlwdD0iWWlpaSIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBZaSBCYWl0aSIvPjxhOmZvbnQgc2NyaXB0PSJUaWJ0IiB0eXBlZmFjZT0iTWljcm9zb2Z0IEhpbWFsYXlhIi8+PGE6Zm9udCBzY3JpcHQ9IlRoYWEiIHR5cGVmYWNlPSJNViBCb2xpIi8+PGE6Zm9udCBzY3JpcHQ9IkRldmEiIHR5cGVmYWNlPSJNYW5nYWwiLz48YTpmb250IHNjcmlwdD0iVGVsdSIgdHlwZWZhY2U9IkdhdXRhbWkiLz48YTpmb250IHNjcmlwdD0iVGFtbCIgdHlwZWZhY2U9IkxhdGhhIi8+PGE6Zm9udCBzY3JpcHQ9IlN5cmMiIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPjxhOmZvbnQgc2NyaXB0PSJPcnlhIiB0eXBlZmFjZT0iS2FsaW5nYSIvPjxhOmZvbnQgc2NyaXB0PSJNbHltIiB0eXBlZmFjZT0iS2FydGlrYSIvPjxhOmZvbnQgc2NyaXB0PSJMYW9vIiB0eXBlZmFjZT0iRG9rQ2hhbXBhIi8+PGE6Zm9udCBzY3JpcHQ9IlNpbmgiIHR5cGVmYWNlPSJJc2tvb2xhIFBvdGEiLz48YTpmb250IHNjcmlwdD0iTW9uZyIgdHlwZWZhY2U9Ik1vbmdvbGlhbiBCYWl0aSIvPjxhOmZvbnQgc2NyaXB0PSJWaWV0IiB0eXBlZmFjZT0iQXJpYWwiLz48YTpmb250IHNjcmlwdD0iVWlnaCIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBVaWdodXIiLz48YTpmb250IHNjcmlwdD0iR2VvciIgdHlwZWZhY2U9IlN5bGZhZW4iLz48L2E6bWlub3JGb250PjwvYTpmb250U2NoZW1lPjxhOmZtdFNjaGVtZSBuYW1lPSJPZmZpY2UiPjxhOmZpbGxTdHlsZUxzdD48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiLz48L2E6c29saWRGaWxsPjxhOmdyYWRGaWxsIHJvdFdpdGhTaGFwZT0iMSI+PGE6Z3NMc3Q+PGE6Z3MgcG9zPSIwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjUwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMzAwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPSIzNTAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSIzNzAwMCIvPjxhOnNhdE1vZCB2YWw9IjMwMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPjxhOmdzIHBvcz0iMTAwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjE1MDAwIi8+PGE6c2F0TW9kIHZhbD0iMzUwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PC9hOmdzTHN0PjxhOmxpbiBhbmc9IjE2MjAwMDAwIiBzY2FsZWQ9IjEiLz48L2E6Z3JhZEZpbGw+PGE6Z3JhZEZpbGwgcm90V2l0aFNoYXBlPSIxIj48YTpnc0xzdD48YTpncyBwb3M9IjAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTpzaGFkZSB2YWw9IjUxMDAwIi8+PGE6c2F0TW9kIHZhbD0iMTMwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPSI4MDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnNoYWRlIHZhbD0iOTMwMDAiLz48YTpzYXRNb2QgdmFsPSIxMzAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48YTpncyBwb3M9IjEwMDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnNoYWRlIHZhbD0iOTQwMDAiLz48YTpzYXRNb2QgdmFsPSIxMzUwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48L2E6Z3NMc3Q+PGE6bGluIGFuZz0iMTYyMDAwMDAiIHNjYWxlZD0iMCIvPjwvYTpncmFkRmlsbD48L2E6ZmlsbFN0eWxlTHN0PjxhOmxuU3R5bGVMc3Q+PGE6bG4gdz0iOTUyNSIgY2FwPSJmbGF0IiBjbXBkPSJzbmciIGFsZ249ImN0ciI+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTpzaGFkZSB2YWw9Ijk1MDAwIi8+PGE6c2F0TW9kIHZhbD0iMTA1MDAwIi8+PC9hOnNjaGVtZUNscj48L2E6c29saWRGaWxsPjxhOnByc3REYXNoIHZhbD0ic29saWQiLz48L2E6bG4+PGE6bG4gdz0iMjU0MDAiIGNhcD0iZmxhdCIgY21wZD0ic25nIiBhbGduPSJjdHIiPjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciIvPjwvYTpzb2xpZEZpbGw+PGE6cHJzdERhc2ggdmFsPSJzb2xpZCIvPjwvYTpsbj48YTpsbiB3PSIzODEwMCIgY2FwPSJmbGF0IiBjbXBkPSJzbmciIGFsZ249ImN0ciI+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIi8+PC9hOnNvbGlkRmlsbD48YTpwcnN0RGFzaCB2YWw9InNvbGlkIi8+PC9hOmxuPjwvYTpsblN0eWxlTHN0PjxhOmVmZmVjdFN0eWxlTHN0PjxhOmVmZmVjdFN0eWxlPjxhOmVmZmVjdExzdD48YTpvdXRlclNoZHcgYmx1clJhZD0iNDAwMDAiIGRpc3Q9IjIwMDAwIiBkaXI9IjU0MDAwMDAiIHJvdFdpdGhTaGFwZT0iMCI+PGE6c3JnYkNsciB2YWw9IjAwMDAwMCI+PGE6YWxwaGEgdmFsPSIzODAwMCIvPjwvYTpzcmdiQ2xyPjwvYTpvdXRlclNoZHc+PC9hOmVmZmVjdExzdD48L2E6ZWZmZWN0U3R5bGU+PGE6ZWZmZWN0U3R5bGU+PGE6ZWZmZWN0THN0PjxhOm91dGVyU2hkdyBibHVyUmFkPSI0MDAwMCIgZGlzdD0iMjMwMDAiIGRpcj0iNTQwMDAwMCIgcm90V2l0aFNoYXBlPSIwIj48YTpzcmdiQ2xyIHZhbD0iMDAwMDAwIj48YTphbHBoYSB2YWw9IjM1MDAwIi8+PC9hOnNyZ2JDbHI+PC9hOm91dGVyU2hkdz48L2E6ZWZmZWN0THN0PjwvYTplZmZlY3RTdHlsZT48YTplZmZlY3RTdHlsZT48YTplZmZlY3RMc3Q+PGE6b3V0ZXJTaGR3IGJsdXJSYWQ9IjQwMDAwIiBkaXN0PSIyMzAwMCIgZGlyPSI1NDAwMDAwIiByb3RXaXRoU2hhcGU9IjAiPjxhOnNyZ2JDbHIgdmFsPSIwMDAwMDAiPjxhOmFscGhhIHZhbD0iMzUwMDAiLz48L2E6c3JnYkNscj48L2E6b3V0ZXJTaGR3PjwvYTplZmZlY3RMc3Q+PGE6c2NlbmUzZD48YTpjYW1lcmEgcHJzdD0ib3J0aG9ncmFwaGljRnJvbnQiPjxhOnJvdCBsYXQ9IjAiIGxvbj0iMCIgcmV2PSIwIi8+PC9hOmNhbWVyYT48YTpsaWdodFJpZyByaWc9InRocmVlUHQiIGRpcj0idCI+PGE6cm90IGxhdD0iMCIgbG9uPSIwIiByZXY9IjEyMDAwMDAiLz48L2E6bGlnaHRSaWc+PC9hOnNjZW5lM2Q+PGE6c3AzZD48YTpiZXZlbFQgdz0iNjM1MDAiIGg9IjI1NDAwIi8+PC9hOnNwM2Q+PC9hOmVmZmVjdFN0eWxlPjwvYTplZmZlY3RTdHlsZUxzdD48YTpiZ0ZpbGxTdHlsZUxzdD48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiLz48L2E6c29saWRGaWxsPjxhOmdyYWRGaWxsIHJvdFdpdGhTaGFwZT0iMSI+PGE6Z3NMc3Q+PGE6Z3MgcG9zPSIwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjQwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMzUwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPSI0MDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSI0NTAwMCIvPjxhOnNoYWRlIHZhbD0iOTkwMDAiLz48YTpzYXRNb2QgdmFsPSIzNTAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48YTpncyBwb3M9IjEwMDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnNoYWRlIHZhbD0iMjAwMDAiLz48YTpzYXRNb2QgdmFsPSIyNTUwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48L2E6Z3NMc3Q+PGE6cGF0aCBwYXRoPSJjaXJjbGUiPjxhOmZpbGxUb1JlY3QgbD0iNTAwMDAiIHQ9Ii04MDAwMCIgcj0iNTAwMDAiIGI9IjE4MDAwMCIvPjwvYTpwYXRoPjwvYTpncmFkRmlsbD48YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9IjEiPjxhOmdzTHN0PjxhOmdzIHBvcz0iMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSI4MDAwMCIvPjxhOnNhdE1vZCB2YWw9IjMwMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPjxhOmdzIHBvcz0iMTAwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6c2hhZGUgdmFsPSIzMDAwMCIvPjxhOnNhdE1vZCB2YWw9IjIwMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPjwvYTpnc0xzdD48YTpwYXRoIHBhdGg9ImNpcmNsZSI+PGE6ZmlsbFRvUmVjdCBsPSI1MDAwMCIgdD0iNTAwMDAiIHI9IjUwMDAwIiBiPSI1MDAwMCIvPjwvYTpwYXRoPjwvYTpncmFkRmlsbD48L2E6YmdGaWxsU3R5bGVMc3Q+PC9hOmZtdFNjaGVtZT48L2E6dGhlbWVFbGVtZW50cz48YTpvYmplY3REZWZhdWx0cy8+PGE6ZXh0cmFDbHJTY2hlbWVMc3QvPjwvYTp0aGVtZT4="
                },
                "worksheets": {
                    "_rels": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFJlbGF0aW9uc2hpcHMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcyI+PFJlbGF0aW9uc2hpcCBJZD0icklkMSIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy90YWJsZSIgVGFyZ2V0PSIuLi90YWJsZXMvdGFibGUxLnhtbCIvPjwvUmVsYXRpb25zaGlwcz4=",
                    "blank_sheet": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPHdvcmtzaGVldCB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiB4bWxuczpyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIiB4bWxuczptYz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYiIG1jOklnbm9yYWJsZT0ieDE0YWMiIHhtbG5zOngxNGFjPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMDkvOS9hYyI+PGRpbWVuc2lvbiByZWY9IkExIi8+PHNoZWV0Vmlld3M+PHNoZWV0VmlldyB3b3JrYm9va1ZpZXdJZD0iMCIvPjwvc2hlZXRWaWV3cz48c2hlZXRGb3JtYXRQciBkZWZhdWx0Um93SGVpZ2h0PSIxNSIgeDE0YWM6ZHlEZXNjZW50PSIwLjI1Ii8+PHNoZWV0RGF0YS8+PHBhZ2VNYXJnaW5zIGxlZnQ9IjAuNyIgcmlnaHQ9IjAuNyIgdG9wPSIwLjc1IiBib3R0b209IjAuNzUiIGhlYWRlcj0iMC4zIiBmb290ZXI9IjAuMyIvPjwvd29ya3NoZWV0Pg=="
                },
                "styles.xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPHN0eWxlU2hlZXQgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpbiIgeG1sbnM6bWM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2IiBtYzpJZ25vcmFibGU9IngxNGFjIiB4bWxuczp4MTRhYz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvYWMiPjxmb250cyBjb3VudD0iMSIgeDE0YWM6a25vd25Gb250cz0iMSI+PGZvbnQ+PHN6IHZhbD0iMTEiLz48Y29sb3IgdGhlbWU9IjEiLz48bmFtZSB2YWw9IkNhbGlicmkiLz48ZmFtaWx5IHZhbD0iMiIvPjxzY2hlbWUgdmFsPSJtaW5vciIvPjwvZm9udD48L2ZvbnRzPjxmaWxscyBjb3VudD0iMiI+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPSJub25lIi8+PC9maWxsPjxmaWxsPjxwYXR0ZXJuRmlsbCBwYXR0ZXJuVHlwZT0iZ3JheTEyNSIvPjwvZmlsbD48L2ZpbGxzPjxib3JkZXJzIGNvdW50PSIxIj48Ym9yZGVyPjxsZWZ0Lz48cmlnaHQvPjx0b3AvPjxib3R0b20vPjxkaWFnb25hbC8+PC9ib3JkZXI+PC9ib3JkZXJzPjxjZWxsU3R5bGVYZnMgY291bnQ9IjEiPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIi8+PC9jZWxsU3R5bGVYZnM+PGNlbGxYZnMgY291bnQ9IjIiPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiB4ZklkPSIwIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIHhmSWQ9IjAiIGFwcGx5QWxpZ25tZW50PSIxIj48YWxpZ25tZW50IGhvcml6b250YWw9ImxlZnQiLz48L3hmPjwvY2VsbFhmcz48Y2VsbFN0eWxlcyBjb3VudD0iMSI+PGNlbGxTdHlsZSBuYW1lPSJOb3JtYWwiIHhmSWQ9IjAiIGJ1aWx0aW5JZD0iMCIvPjwvY2VsbFN0eWxlcz48ZHhmcyBjb3VudD0iMSI+PGR4Zj48YWxpZ25tZW50IGhvcml6b250YWw9ImxlZnQiIHZlcnRpY2FsPSJib3R0b20iIHRleHRSb3RhdGlvbj0iMCIgd3JhcFRleHQ9IjAiIGluZGVudD0iMCIganVzdGlmeUxhc3RMaW5lPSIwIiBzaHJpbmtUb0ZpdD0iMCIgcmVhZGluZ09yZGVyPSIwIi8+PC9keGY+PC9keGZzPjx0YWJsZVN0eWxlcyBjb3VudD0iMCIgZGVmYXVsdFRhYmxlU3R5bGU9IlRhYmxlU3R5bGVNZWRpdW0yIiBkZWZhdWx0UGl2b3RTdHlsZT0iUGl2b3RTdHlsZUxpZ2h0MTYiLz48ZXh0THN0PjxleHQgdXJpPSJ7RUI3OURFRjItODBCOC00M2U1LTk1QkQtNTRDQkRERjkwMjBDfSIgeG1sbnM6eDE0PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMDkvOS9tYWluIj48eDE0OnNsaWNlclN0eWxlcyBkZWZhdWx0U2xpY2VyU3R5bGU9IlNsaWNlclN0eWxlTGlnaHQxIi8+PC9leHQ+PC9leHRMc3Q+PC9zdHlsZVNoZWV0Pg==",
                "workbook.xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPHdvcmtib29rIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvc3ByZWFkc2hlZXRtbC8yMDA2L21haW4iIHhtbG5zOnI9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMiPjxmaWxlVmVyc2lvbiBhcHBOYW1lPSJ4bCIgbGFzdEVkaXRlZD0iNSIgbG93ZXN0RWRpdGVkPSI1IiBydXBCdWlsZD0iOTMwMyIvPjx3b3JrYm9va1ByIGRlZmF1bHRUaGVtZVZlcnNpb249IjEyNDIyNiIvPjxib29rVmlld3M+PHdvcmtib29rVmlldyB4V2luZG93PSIxMjAiIHlXaW5kb3c9IjEwNSIgd2luZG93V2lkdGg9IjEyNDM1IiB3aW5kb3dIZWlnaHQ9IjY5OTAiLz48L2Jvb2tWaWV3cz48c2hlZXRzPjxzaGVldCBuYW1lPSJTaGVldDEiIHNoZWV0SWQ9IjEiIHI6aWQ9InJJZDEiLz48c2hlZXQgbmFtZT0iU2hlZXQyIiBzaGVldElkPSIyIiByOmlkPSJySWQyIi8+PHNoZWV0IG5hbWU9IlNoZWV0MyIgc2hlZXRJZD0iMyIgcjppZD0icklkMyIvPjwvc2hlZXRzPjxjYWxjUHIgY2FsY0lkPSIxNDU2MjEiLz48L3dvcmtib29rPg=="
            },
            "ContentTypes": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPFR5cGVzIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L2NvbnRlbnQtdHlwZXMiPjxEZWZhdWx0IEV4dGVuc2lvbj0icmVscyIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLnJlbGF0aW9uc2hpcHMreG1sIi8+PERlZmF1bHQgRXh0ZW5zaW9uPSJ4bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94bWwiLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC93b3JrYm9vay54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldC5tYWluK3htbCIvPjxPdmVycmlkZSBQYXJ0TmFtZT0iL3hsL3dvcmtzaGVldHMvc2hlZXQxLnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLndvcmtzaGVldCt4bWwiLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC93b3Jrc2hlZXRzL3NoZWV0Mi54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC53b3Jrc2hlZXQreG1sIi8+PE92ZXJyaWRlIFBhcnROYW1lPSIveGwvd29ya3NoZWV0cy9zaGVldDMueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwud29ya3NoZWV0K3htbCIvPjxPdmVycmlkZSBQYXJ0TmFtZT0iL3hsL3RoZW1lL3RoZW1lMS54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudGhlbWUreG1sIi8+PE92ZXJyaWRlIFBhcnROYW1lPSIveGwvc3R5bGVzLnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnN0eWxlcyt4bWwiLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC9zaGFyZWRTdHJpbmdzLnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoYXJlZFN0cmluZ3MreG1sIi8+PE92ZXJyaWRlIFBhcnROYW1lPSIveGwvdGFibGVzL3RhYmxlMS54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50YWJsZSt4bWwiLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii9kb2NQcm9wcy9jb3JlLnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLmNvcmUtcHJvcGVydGllcyt4bWwiLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii9kb2NQcm9wcy9hcHAueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmV4dGVuZGVkLXByb3BlcnRpZXMreG1sIi8+PC9UeXBlcz4="
        };
    
        this.static_pieces = {
            "xml_header": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg=="
        };
    
        this.range = "";
    
        /**** XML GENERATORS ****/
    
        /**
         * Creates sharedStrings.xml file.
         * 
         * Excel files have a sharedStrings.xml, this file holds all of the strings
         * used in the Excel spreadsheet to reduce repeating data.
         */
        this.sharedStrings = {
            "xml": {
                //sst: {0} = count
                //sst: {1} = uniqueCount
                "open_sst": "PHNzdCB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiBjb3VudD0iezB9IiB1bmlxdWVDb3VudD0iezF9Ij4=",
                "close_sst": "</sst>",
                //si: {0} = value
                "si": "<si><t>{0}</t></si>"
            },
            "count": 0,
            "vals": [],
            /**
             * Adds value to Cache if it is a string and isn't already included.
             *
             * @returns {sharedString Value Object}
             */
            "add": function (value) {
                if (isNaN(value)) {
                    this.count++;
                    if (this.vals.indexOf(value) === -1) {
                        this.vals.push(value);
                    }
                    return { "type": "shared", "value": this.vals.indexOf(value), "text": value };
                } else {
                    return { "type": "literal", "value": value, "text": value };
                }
            },
            /**
             * Creates sharedString.xml.
             */
            "to_xml": function () {
                out = [];
                out.push(atob(me.static_pieces.xml_header));
                out.push("\n");
                out.push(atob(this.xml.open_sst).format(this.count, this.vals.length));
                var si = this.xml.si;
                this.vals.forEach(function (v) {
                    out.push(si.format(v));
                });
                out.push(this.xml.close_sst);
                return out.join("");
            }
        };
    
        this.table = {
            "xml": {
                // table: {0} = ref
                "open_table": "PHRhYmxlIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvc3ByZWFkc2hlZXRtbC8yMDA2L21haW4iIGlkPSIxIiBuYW1lPSJUYWJsZTEiIGRpc3BsYXlOYW1lPSJUYWJsZTEiIHJlZj0iezB9IiB0b3RhbHNSb3dTaG93bj0iMCI+",
                "close_table": "</table>",
                //autoFilter: {0} = ref
                "autoFilter": "PGF1dG9GaWx0ZXIgcmVmPSJ7MH0iLz4=",
                //tableColumns: {0} = count
                "tableColumns": "PHRhYmxlQ29sdW1ucyBjb3VudD0iezB9Ij4=",
                //tableColumn: {0} = id
                //tableColumn: {1} = name
                "tableColumn": "PHRhYmxlQ29sdW1uIGlkPSJ7MH0iIG5hbWU9InsxfSIvPg==",
                "close_tableColumns": "</tableColumns>",
                "tableStyleInfo": "PHRhYmxlU3R5bGVJbmZvIG5hbWU9IlRhYmxlU3R5bGVNZWRpdW0yIiBzaG93Rmlyc3RDb2x1bW49IjAiIHNob3dMYXN0Q29sdW1uPSIwIiBzaG93Um93U3RyaXBlcz0iMSIgc2hvd0NvbHVtblN0cmlwZXM9IjAiLz4="
            },
            "to_xml": function () {
                var out = [];
                out.push(atob(me.static_pieces.xml_header));
                out.push("\n");
                out.push(atob(this.xml.open_table).format(me.range));
                out.push(atob(this.xml.autoFilter).format(me.range));
                out.push(atob(this.xml.tableColumns).format(me.headers.length));
                var tableColumn = atob(this.xml.tableColumn);
                me.headers.forEach(function (v, i) {
                    //First row has dataDxfId="0" in the sample leaving out incase
                    out.push(tableColumn.format((i + 1), v));
                });
                out.push(this.xml.close_tableColumns);
                out.push(atob(this.xml.tableStyleInfo));
                out.push(this.xml.close_table);
                return out.join("");
            }
        }
    
        this.sheet = {
            "xml": {
                //dimension: {0} = ref
                //selection: {1} = sqref
                "start": "PHdvcmtzaGVldCB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiB4bWxuczpyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIiB4bWxuczptYz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYiIG1jOklnbm9yYWJsZT0ieDE0YWMiIHhtbG5zOngxNGFjPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMDkvOS9hYyI+PGRpbWVuc2lvbiByZWY9InswfSIvPjxzaGVldFZpZXdzPjxzaGVldFZpZXcgdGFiU2VsZWN0ZWQ9IjEiIHdvcmtib29rVmlld0lkPSIwIj48c2VsZWN0aW9uIHNxcmVmPSJ7MX0iLz48L3NoZWV0Vmlldz48L3NoZWV0Vmlld3M+PHNoZWV0Rm9ybWF0UHIgZGVmYXVsdFJvd0hlaWdodD0iMTUiIHgxNGFjOmR5RGVzY2VudD0iMC4yYiIvPg==",
                "margins": "PHBhZ2VNYXJnaW5zIGxlZnQ9IjAuNyIgcmlnaHQ9IjAuNyIgdG9wPSIwLjc1IiBib3R0b209IjAuNzUiIGhlYWRlcj0iMC4zIiBmb290ZXI9IjAuMyIvPg==",
                //row: {0} = r
                //row: {1} = spans
                "row": "PHJvdyByPSJ7MH0iIHNwYW5zPSJ7MX0iIHgxNGFjOmR5RGVzY2VudD0iMC4yNSI+",
                "close_row": "</row>",
                //cell: {0} = r
                //cell: {1} = cell value
                "cell": "PGMgcj0iezB9IiBzPSIxIj48dj57MX08L3Y+PC9jPg==",
                "shared_cell": "PGMgcj0iezB9IiBzPSIxIiB0PSJzIj48dj57MX08L3Y+PC9jPg==",
                "table": "PHRhYmxlUGFydHMgY291bnQ9IjEiPjx0YWJsZVBhcnQgcjppZD0icklkMSIvPjwvdGFibGVQYXJ0cz4=",
                //col: {0} = min
                //col: {1} = max
                //col: {2} = width
                "col": "PGNvbCBtaW49InswfSIgbWF4PSJ7MX0iIHdpZHRoPSJ7Mn0iIGN1c3RvbVdpZHRoPSIxIi8+",
                "open_cols": "<cols>",
                "close_cols": "</cols>",
                "open_sd": "<sheetData>",
                "close_sd": "</sheetData>",
                "end": "</worksheet>"
            },
            "rows": [],
            "is_table": true,
            "to_xml": function () {
                //generate the beginning xml of the sheet
                front = [];
                front.push(atob(me.static_pieces.xml_header));
                front.push("\n");
                me.range = me.__column_number__(1) + "1:" + me.__column_number__(this.rows[0].length) + this.rows.length;
                front.push(atob(this.xml.start).format(me.range, me.range));
    
                data = [];
    
                data.push(this.xml.open_sd);
                var spans = "1:" + this.rows[0].length;
                var colWidths = {};
                var row = atob(this.xml.row);
                var cell = atob(this.xml.cell);
                var shared_cell = atob(this.xml.shared_cell);
    
                ot = this;
                this.rows.forEach(function (v, i) {
                    data.push(row.format((i + 1), spans));
                    v.forEach(function (c, j) {
                        if (c.type === "shared") {
                            data.push(shared_cell.format((me.__column_number__(j + 1) + "" + (i + 1)), c.value));
                        } else {
                            data.push(cell.format((me.__column_number__(j + 1) + "" + (i + 1)), c.value));
                        }
                        colWidths[j] = (!colWidths[j] || (c.text.length + 5) > colWidths[j]) ? c.text.length + 5 : colWidths[j];
                    });
                    data.push(ot.xml.close_row);
                });
    
                data.push(this.xml.close_sd);
                data.push(atob(this.xml.margins));
                if (this.is_table) {
                    data.push(atob(this.xml.table));
                }
                data.push(this.xml.end);
    
                cols = [];
                col = atob(this.xml.col);
                cols.push(this.xml.open_cols);
                for (var key in colWidths) {
                    v = parseInt(key) + 1;
                    //in my sample first column has style=1 didn't do it here.
                    cols.push(col.format(v, v, colWidths[key]));
                }
                cols.push(this.xml.close_cols);
    
                return front.join("") + cols.join("") + data.join("");
            }
        };
    
        /*
        helpers
        */
        this.__column_number__ = function (val) {
            for (var out = '', a = 1, b = 26; (val -= a) >= 0; a = b, b *= 26) {
                out = String.fromCharCode(parseInt((val % b) / a) + 65) + out;
            }
            return out;
        };
    
    	String.prototype.format = function () {
    		return (function (a, t) { return t.replace(/\{(\d+)\}/g, function (_, i) { return a[~ ~i] }) })(arguments, this);
    	};
    
    	/**
    	 *    Extension of JQuery Library for getting either the text or the value out of child elements.
    	 *
    	 *    Looks at the children elements, if it finds select or input tag, 
    	 *    it returns the value, otherwise it returns the text of the element.
    	 */
    	jQuery.fn.extend({
    	  "textOrValue": function () {
    		var t = this.find("select, input");
    		return (t.length) ? t.val():this.text();
    	  }
    	});
    
        /**
         * Basic internal initialization.
         */
        this.__initialize__ = function (options) {
            this.options = $.extend(this.defaultOptions, options);
            this.__readHTMLTable__();
        };
    
        this.__readHTMLTable__ = function () {
            //setup HTML input
            if (this.options.src_id) {
                var table = $("#" + this.options.src_id);
                if ((table.length) && (table.prop("tagName") == "TABLE")) {
                    var skipFirst = false;
                    if ((!this.options.header_row) && (this.options.show_header)) {
                        if (table.has("thead").length) {
                            this.options.header_row = table.find("thead tr:nth-child(1)")
                        } else {
                            this.options.header_row = table.find("tr:nth-child(1)")
                            skipFirst = true;
                        }
                        this.col_count = this.options.header_row.length;
                    }
                    if (!this.options.body_rows) {
                        if (table.has("tbody").length) {
                            this.options.body_rows = (skipFirst) ? table.find("tbody tr").not(":first") : table.find("tbody tr");
                        } else {
                            this.options.body_rows = (skipFirst) ? table.find("tr").not(":first") : table.find("tr");
                        }
                        this.col_count = (this.col_count === 0) ? this.options.body_rows[0].length : this.col_count;
                    }
                }
            }
            //process header if it exists
            if (this.options.header_row) {
                var row = [];
                var outerThis = this;
                this.options.header_row.children("th,td").each(function () {
                    //header text gets stored for table
                    var txt = $(this).textOrValue().trim().replace(/ +(?= )/g, '');
                    outerThis.headers.push(txt);
                    row.push(outerThis.sharedStrings.add(txt));
                });
                this.sheet.rows.push(row);
            }
            //process content
            if (this.options.body_rows) {
                this.options.body_rows.each(function () {
                    var row = [];
                    $(this).children("td").each(function () {
                        row.push(outerThis.sharedStrings.add($(this).textOrValue().trim().replace(/ +(?= )/g, '')));
                    });
                    outerThis.sheet.rows.push(row);
                });
            }
        };
    
        this.__blank__ = function () {
    
            var zip = new JSZip(), _rels = zip.folder("_rels"), doc = zip.folder("docProps"), xl = zip.folder("xl");
            _rels.file(".rels", atob(this.static_components._rels[".rels"]));
            doc.file("app.xml", atob(this.static_components.docProps["app.xml"]));
            doc.file("core.xml", atob(this.static_components.docProps["core.xml"]));
            zip.file("[Content_Types].xml", atob(this.static_components.ContentTypes));
            xl_rels = xl.folder("_rels");
            xl_theme = xl.folder("theme");
            xl_tables = xl.folder("tables");
            xl_worksheets = xl.folder("worksheets");
            if (this.options.type === "table") {
                var xl_ws_rels = xl_worksheets.folder("_rels");
                xl_ws_rels.file("sheet1.xml.rels", atob(this.static_components.xl.worksheets._rels));
            }
            //sheet2 and sheet3 shall be blank at this time
            xl_worksheets.file("sheet2.xml", atob(this.static_components.xl.worksheets.blank_sheet));
            xl_worksheets.file("sheet3.xml", atob(this.static_components.xl.worksheets.blank_sheet));
            xl_rels.file("workbook.xml.rels", atob(this.static_components.xl._rels["workbook.xml.rels"]));
            xl_theme.file("theme1.xml", atob(this.static_components.xl.theme["theme1.xml"]));
            xl.file("styles.xml", atob(this.static_components.xl["styles.xml"]));
            xl.file("workbook.xml", atob(this.static_components.xl["workbook.xml"]));
            return {
                "base": zip,
                "xl": xl,
                "tables": xl_tables,
                "worksheets": xl_worksheets
            };
    
        }
    
        this.generate = function () {
            var workbook = this.__blank__();
            workbook.worksheets.file("sheet1.xml", this.sheet.to_xml());
            workbook.xl.file("sharedStrings.xml", this.sharedStrings.to_xml());
            workbook.tables.file("table1.xml", this.table.to_xml());
            workbook.base.generateAsync({ type: "blob" })
                .then(function (content) {
                    saveAs(content, "example.xlsx");
                });
        };
    
    
        //initialize the object
        this.__initialize__(options);
    
    };
    

    然后我们来看一下我们的jsp界面
    Excle.jsp
    代码如下:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>jQuery网页表格导出Excel文件</title>
    
    <link rel="stylesheet" type="text/css" href="http://www.jq22.com/jquery/bootstrap-3.3.4.css">
    <link rel="stylesheet" type="text/css" href="http://www.jq22.com/jquery/font-awesome.4.6.0.css">
    
    <link rel="stylesheet" type="text/css" href="css/demo.css">
    
    </head>
    <body>
    
    <div class="container">
    	<div class="row">
    		<div class="col-md-3" style="padding:2em 0;">
    			<button type="button" class="btn btn-success btn-block" id="generate-excel"><i class="fa fa-file-excel-o" aria-hidden="true"></i> 将表格转换为Excel</button>
    		</div>
    		<div class="col-md-12" style="padding:2em 0;">
    			<div class="table-responsive">
    			<table class="table table-bordered table-striped" id="test_table">
    				<thead>
    				  <tr>
    					<td>班级</td>
    					<td>姓名</td>
    					<td>年龄</td>
    					<td>性别</td>
    					<td>地址</td>
    					<td>手机号</td>
    				  </tr>
    				</thead>
    				<tbody>
    				  <tr>
    							<td>
    								<span>T226</span>
    							</td>
    							<td>
    								<span>小李</span>
    							</td>
    							<td>
    								<span>18</span>
    							</td>
    							<td>
    								<span>男</span>
    							</td>
    							<td>
    								<span>梅溪湖</span>
    							</td>
    							<td>
    								<span>12378349323</span>
    							</td>
    						</tr>
    						  <tr>
    							<td>
    								<span>T226</span>
    							</td>
    							<td>
    								<span>小李1</span>
    							</td>
    							<td>
    								<span>19</span>
    							</td>
    							<td>
    								<span>男</span>
    							</td>
    							<td>
    								<span>梅溪湖</span>
    							</td>
    							<td>
    								<span>12378349323</span>
    							</td>
    						</tr>
    						  <tr>
    							<td>
    								<span>T226</span>
    							</td>
    							<td>
    								<span>小李2</span>
    							</td>
    							<td>
    								<span>20</span>
    							</td>
    							<td>
    								<span>男</span>
    							</td>
    							<td>
    								<span>梅溪湖</span>
    							</td>
    							<td>
    								<span>12378349323</span>
    							</td>
    						</tr>
    						  <tr>
    							<td>
    								<span>T226</span>
    							</td>
    							<td>
    								<span>小李3</span>
    							</td>
    							<td>
    								<span>18</span>
    							</td>
    							<td>
    								<span>男</span>
    							</td>
    							<td>
    								<span>梅溪湖</span>
    							</td>
    							<td>
    								<span>12378349323</span>
    							</td>
    						</tr>
    						  <tr>
    							<td>
    								<span>T226</span>
    							</td>
    							<td>
    								<span>小李4</span>
    							</td>
    							<td>
    								<span>18</span>
    							</td>
    							<td>
    								<span>男</span>
    							</td>
    							<td>
    								<span>梅溪湖</span>
    							</td>
    							<td>
    								<span>12378349323</span>
    							</td>
    						</tr>
    						  <tr>
    							<td>
    								<span>T226</span>
    							</td>
    							<td>
    								<span>小李5</span>
    							</td>
    							<td>
    								<span>18</span>
    							</td>
    							<td>
    								<span>男</span>
    							</td>
    							<td>
    								<span>梅溪湖</span>
    							</td>
    							<td>
    								<span>12378349323</span>
    							</td>
    						</tr>
    						  <tr>
    							<td>
    								<span>T226</span>
    							</td>
    							<td>
    								<span>小李6</span>
    							</td>
    							<td>
    								<span>18</span>
    							</td>
    							<td>
    								<span>男</span>
    							</td>
    							<td>
    								<span>梅溪湖</span>
    							</td>
    							<td>
    								<span>12378349323</span>
    							</td>
    						</tr>
    				</tbody>
    			  </table>
    			</div>
    		</div>
    	</div>
    </div>
    
    <script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
    <script type="text/javascript" src="https://cdn.bootcss.com/jszip/3.1.5/jszip.min.js"></script>
    <script type="text/javascript" src="external/FileSaver.js"></script>
    <script type="text/javascript" src="scripts/excel-gen.js"></script>
    <script type="text/javascript" src="scripts/demo.page.js"></script>
    
    </body>
    </html>
    

    效果如图所示:
    在这里插入图片描述
    在这里插入图片描述

    网页内容导出Word文档

    同样的我们来看一下我们的层级结构(架包报错是正常现象,不影响效果)
    如图所示:
    在这里插入图片描述
    demo.css
    代码如下:

    @charset "utf-8";
    /*框架预览 CSS*/
    .mkeBody{ background:#121212;}
    .mkeHeadBox{ padding: 30px 10px; text-overflow: ellipsis; white-space: nowrap; margin: 0; color: #fff; text-align: center; overflow: hidden; border-bottom: 3px solid #666; box-shadow: inset 0 -2px 3px #000000; letter-spacing: 1px; font: 26px/26px "微软雅黑"; }
    .mkeFooterBox{ padding: 25px 10px; text-overflow: ellipsis; margin: 0; color: #fff; font-size: 14px; line-height: 24px; text-align: center; overflow: hidden; border-top: 3px solid #666; box-shadow: inset 0 2px 3px #000000; }
    .mkeContentBox{ background:#494A5F; padding:50px}
    .mkeContentBox:after{height:0; clear:both;}
    .mkeFooterBox p,.mkeFooterBox div{padding:0; margin:0; line-height:26px; font-size:14px;}
    .mkeFooterBox a{color:#fff; white-space:nowrap}
    .mkeButton{background:#F36; display:inline-block; text-decoration:none; width:102px; border-radius:0.3em; transition:all 0.3s ease}
    .mkeButton:hover{ background: #FF1550; }
    .mkeURL{font-size:24px;}
    .mkeFooterBox .mKeBannerAD{ width: 728px; height: 90px; margin: 18px auto 0; }
    .mkeFooterBox .mSmallKeBannerAD{display:none;}
    @media only screen and (max-width:900px){
    .mkeButton {display:block; margin:8px auto 0;}
    }
    @media only screen and (max-width:767px){
    .mkeHeadBox{font-size:18px; padding:15px 10px;}
    .mkeFooterBox p,.mkeFooterBox div{ line-height:24px; font-size:12px;}
    .mkeURL{font-size:22px;}
    .mkeFooterBox .mKeBannerAD{display:none;}
    .mkeFooterBox .mSmallKeBannerAD{width:300px; height:250px; margin:18px auto 0; display:block;}
    }
    /*End*/
    
    /*主要CSS*/
    body, html { font-size: 100%; 	padding: 0; margin: 0;}
    
    /* Reset */
    *,
    *:after,
    *:before {
    	-webkit-box-sizing: border-box;
    	-moz-box-sizing: border-box;
    	box-sizing: border-box;
    }
    
    /* Clearfix hack by Nicolas Gallagher: http://nicolasgallagher.com/micro-clearfix-hack/ */
    .clearfix:before,
    .clearfix:after {
    	content: " ";
    	display: table;
    }
    
    .clearfix:after {
    	clear: both;
    }
    
    body{
    	background: #494A5F;
    	color: #D5D6E2;
    	font-weight: 500;
    	font-size: 1.05em;
    	font-family: "Microsoft YaHei","宋体","Segoe UI", "Lucida Grande", Helvetica, Arial,sans-serif, FreeSans, Arimo;
    }
    a{ color: rgba(255, 255, 255, 0.6);outline: none;text-decoration: none;-webkit-transition: 0.2s;transition: 0.2s;}
    a:hover,a:focus{color:#74777b;text-decoration: none;}
    .word-icon{
    	font-family: "Helvetica", sans-serif;
        font-size: 24px;
        font-weight: bold;
        background-color: #0054a6;
        color: white;
        padding: 2px 5px;
        vertical-align: middle;
    }
    

    FileSaver.js
    代码如下:

    /* FileSaver.js
     * A saveAs() FileSaver implementation.
     * 1.3.2
     * 2016-06-16 18:25:19
     *
     * By Eli Grey, http://eligrey.com
     * License: MIT
     *   See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
     */
    
    /*global self */
    /*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */
    
    /*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
    
    var saveAs = saveAs || (function(view) {
    	"use strict";
    	// IE <10 is explicitly unsupported
    	if (typeof view === "undefined" || typeof navigator !== "undefined" && /MSIE [1-9]\./.test(navigator.userAgent)) {
    		return;
    	}
    	var
    		  doc = view.document
    		  // only get URL when necessary in case Blob.js hasn't overridden it yet
    		, get_URL = function() {
    			return view.URL || view.webkitURL || view;
    		}
    		, save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a")
    		, can_use_save_link = "download" in save_link
    		, click = function(node) {
    			var event = new MouseEvent("click");
    			node.dispatchEvent(event);
    		}
    		, is_safari = /constructor/i.test(view.HTMLElement)
    		, is_chrome_ios =/CriOS\/[\d]+/.test(navigator.userAgent)
    		, throw_outside = function(ex) {
    			(view.setImmediate || view.setTimeout)(function() {
    				throw ex;
    			}, 0);
    		}
    		, force_saveable_type = "application/octet-stream"
    		// the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to
    		, arbitrary_revoke_timeout = 1000 * 40 // in ms
    		, revoke = function(file) {
    			var revoker = function() {
    				if (typeof file === "string") { // file is an object URL
    					get_URL().revokeObjectURL(file);
    				} else { // file is a File
    					file.remove();
    				}
    			};
    			setTimeout(revoker, arbitrary_revoke_timeout);
    		}
    		, dispatch = function(filesaver, event_types, event) {
    			event_types = [].concat(event_types);
    			var i = event_types.length;
    			while (i--) {
    				var listener = filesaver["on" + event_types[i]];
    				if (typeof listener === "function") {
    					try {
    						listener.call(filesaver, event || filesaver);
    					} catch (ex) {
    						throw_outside(ex);
    					}
    				}
    			}
    		}
    		, auto_bom = function(blob) {
    			// prepend BOM for UTF-8 XML and text/* types (including HTML)
    			// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
    			if (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
    				return new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});
    			}
    			return blob;
    		}
    		, FileSaver = function(blob, name, no_auto_bom) {
    			if (!no_auto_bom) {
    				blob = auto_bom(blob);
    			}
    			// First try a.download, then web filesystem, then object URLs
    			var
    				  filesaver = this
    				, type = blob.type
    				, force = type === force_saveable_type
    				, object_url
    				, dispatch_all = function() {
    					dispatch(filesaver, "writestart progress write writeend".split(" "));
    				}
    				// on any filesys errors revert to saving with object URLs
    				, fs_error = function() {
    					if ((is_chrome_ios || (force && is_safari)) && view.FileReader) {
    						// Safari doesn't allow downloading of blob urls
    						var reader = new FileReader();
    						reader.onloadend = function() {
    							var url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');
    							var popup = view.open(url, '_blank');
    							if(!popup) view.location.href = url;
    							url=undefined; // release reference before dispatching
    							filesaver.readyState = filesaver.DONE;
    							dispatch_all();
    						};
    						reader.readAsDataURL(blob);
    						filesaver.readyState = filesaver.INIT;
    						return;
    					}
    					// don't create more object URLs than needed
    					if (!object_url) {
    						object_url = get_URL().createObjectURL(blob);
    					}
    					if (force) {
    						view.location.href = object_url;
    					} else {
    						var opened = view.open(object_url, "_blank");
    						if (!opened) {
    							// Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html
    							view.location.href = object_url;
    						}
    					}
    					filesaver.readyState = filesaver.DONE;
    					dispatch_all();
    					revoke(object_url);
    				}
    			;
    			filesaver.readyState = filesaver.INIT;
    
    			if (can_use_save_link) {
    				object_url = get_URL().createObjectURL(blob);
    				setTimeout(function() {
    					save_link.href = object_url;
    					save_link.download = name;
    					click(save_link);
    					dispatch_all();
    					revoke(object_url);
    					filesaver.readyState = filesaver.DONE;
    				});
    				return;
    			}
    
    			fs_error();
    		}
    		, FS_proto = FileSaver.prototype
    		, saveAs = function(blob, name, no_auto_bom) {
    			return new FileSaver(blob, name || blob.name || "download", no_auto_bom);
    		}
    	;
    	// IE 10+ (native saveAs)
    	if (typeof navigator !== "undefined" && navigator.msSaveOrOpenBlob) {
    		return function(blob, name, no_auto_bom) {
    			name = name || blob.name || "download";
    
    			if (!no_auto_bom) {
    				blob = auto_bom(blob);
    			}
    			return navigator.msSaveOrOpenBlob(blob, name);
    		};
    	}
    
    	FS_proto.abort = function(){};
    	FS_proto.readyState = FS_proto.INIT = 0;
    	FS_proto.WRITING = 1;
    	FS_proto.DONE = 2;
    
    	FS_proto.error =
    	FS_proto.onwritestart =
    	FS_proto.onprogress =
    	FS_proto.onwrite =
    	FS_proto.onabort =
    	FS_proto.onerror =
    	FS_proto.onwriteend =
    		null;
    
    	return saveAs;
    }(
    	   typeof self !== "undefined" && self
    	|| typeof window !== "undefined" && window
    	|| this.content
    ));
    // `self` is undefined in Firefox for Android content script context
    // while `this` is nsIContentFrameMessageManager
    // with an attribute `content` that corresponds to the window
    
    if (typeof module !== "undefined" && module.exports) {
      module.exports.saveAs = saveAs;
    } else if ((typeof define !== "undefined" && define !== null) && (define.amd !== null)) {
      define([], function() {
        return saveAs;
      });
    }
    
    

    然后我们来看一下我们的jsp页面
    Word.jsp
    代码如下:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>将网页内容导出Word文档jQuery插件</title>
    <link rel="stylesheet" type="text/css" href="css/demo.css">
    </head>
    <body class="mkeBody">
    <div class="mkeHeadBox">将网页内容导出Word文档jQuery插件</div>
    <div class="mkeContentBox">
    <!--效果html开始-->
    <div class="container">
    	<div class="row">
    		<div class="col-md-9" id="pagecontent">
    			<h3>科比自传</h3>			
    			无论你走在任何大街小巷,只要有篮球的出现,便一定会有这个人的名字紧随其后,因为他与篮球之神迈克尔。乔丹已经毫无疑问的成为了当今篮球的象征,因为他的出现,篮球才会再一次变得神乎其神。他桀骜不驯的镜头成了永恒的代表;他无数次带伤上阵的画面成了无数人的赞佩对像;他一次次在球队最危险的时候靠自己的如火纯清的篮球技术解救球队的画面成为千千万万观众津津乐道的事件,他就是一个永不言败的人——科比。布莱恩特。
    
      科比出生在美国一个普通家庭,他小时候就深受篮球的熏陶,他的父亲也是一名篮球运动员以及教练。科比在高中的时候便展现了无限的潜力,他也为自己出色的表现直接进入NBA,要知道,那一年,他才17岁。此后他与奥尼尔的”OK”组合叱咤风云,一举取得三连冠,但随后的两年低谷也让这位天才球员愈发成熟,终于在09-10赛季,他带领着整个湖人取得了两连冠,他再一次证明了自己的强大,也让整个湖人为之闪闪发光……
    
      当你看完科比的这些简历,你可能会羡慕他所拥有的那些常人梦寐以求的东西——花不完的美元、无数的闪光灯和百年难道一见的天赋,这些都是人们打拼几年、十几年乃至一生都难以获得的东西,但你是否知道这些闪光灯背后是无数汗水所凝结的呢?科比一天要训练六个小时,投进两千个球,外加五百次罚篮和五百次三分,当你通过慢镜头所留下的那双难看甚至已经变形的手,他已经告诉了我们成功的答案,那就是训练、训练、再训练,因为只有你在背后付出的越多,那么你所收获的便也越多——不论是什么,一切都是成完美的正比例,没有任何的运气,努力,方改变一切……
    
      科比在苦苦训练只为那“台上十分钟,台下十年功”的时候,也可能会遭受到那职业运动巨大负荷所带来的心灵上以及肉体上的巨大伤害。有人曾经拿过一张示意图来分析科比的受伤地方与没受伤地方做比较,结果令人大吃一惊,科比仅有左手和左脚腕没受伤,其他的每一处受伤都足以让一个运动员告别他的篮球殿堂,我们在庆幸科比幸运的时刻,我们也在为这个老男人心疼,在这个高手如林的世界里,他用他的坚持、勇敢在脱颖而出,为了这份运动,他不惜把自己的生命作为了抵押而去为这个篮球的世界贡献自己的一份力量,这份力量虽然不能强大到掀翻这个世界,但我相信,他足以打破美国篮球史上的传奇历程,足以惊起NBA的惊涛骇浪,我想,如果他不是凭借这样一种像黑曼巴一样的毅力,他是绝对取得不了如此伟大的成就,这一切的伟大取决于这位英雄内心最深处的咆哮与怒吼……
    
      科比的精神委实让我们深深折服,但是当今国泰民安的盛世中又有几个人能有如此伟大的精神呢?一个个孩子吃不得半点的苦,天天在家里如“小皇帝”、“小公主”一般的受宠着,似乎他们的嘴巴一张,那一个个的外婆外公、爷爷奶奶、爸爸妈妈们便蜂拥而至的,每一个都蓄势待发,似乎随时听候着调遣,这是一种多么可悲的画面?难道所谓的中华民族的优秀品质早已全然无影了吗?那我们那些烈士们所用鲜血染红的五星红旗又将何去何从?那人心的泯灭是否又会使这个刚刚苏醒的巨龙再一次受到外来入侵者的枪林弹雨?不!绝对不可以!我们已经在那因为过度自满的清朝尝到了寄人篱下的感觉,我们,中国人现在已经足以强大!但是军事的强大是次要的,最重要的,是人人都怀揣着那颗为了自己的梦想,为了自己祖国,为了自己最崇高的理念所奋斗!拼搏!我们要学习科比,要学习黑曼巴,那种锲而不舍,那种持之以恒,那种无论什么时候,只要球队,只要国家需要我,我必将勇往直前!即使我受着再大的伤害,我那颗时时刻刻为报效的五星红旗依旧冉冉而升!这就是我们中国人骨子里的强大!这就是民族之魂魄!让我们这些祖国的花朵见见风雨吧!我们需要那狂风暴雨过后灿烂的彩虹!怒吼吧!黑曼巴!咆哮吧!科比!撕裂吧!我中华的少年们……
    
      现在,当你看到科比无与伦比的球技时,你还会再一味的看待这篮球运动员以及篮球的表面吗?我想,你会慢慢沉默的,因为,不光是科比,不光是你,也不光是我,我们都追逐着自己的梦想,我们都为自己的梦想付出汗水,但我想,无论取得多么大的成就,请你记住,当国家需要你的时候,我希望你无论如何都要挺身而出,不仅仅因为科比的“科比精神”,更多的,是源自于一个中华儿女的炽热内心……
    
      科比,世界人已看到你永垂不朽,那是科比精神最终的渲染内容
    		</div>
    		<div class="col-md-3">
    			<a class="btn btn-default jquery-word-export" href="javascript:void(0)" style="color: aqua">
    					<span class="word-icon">W</span>
    					导出为.doc文档
    				 </a>
    		</div>
    	</div>
    </div>
    
    <script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
    <script type="text/javascript" src="js/FileSaver.js"></script>
    <script type="text/javascript" src="js/jquery.wordexport.js"></script>
    
    <script type="text/javascript">
    jQuery(document).ready(function($) {
    	$("a.jquery-word-export").click(function(event) {
    		$("#pagecontent").wordExport();
    	});
    });
    </script>
    
    </body>
    </html>
    
    

    效果如图所示:
    在这里插入图片描述
    在这里插入图片描述
    谢谢大家,多多指教!!!

    展开全文
  • mysql 命令行导入导出

    千次阅读 2020-07-28 19:09:48
    本文介绍一些常用的导入导出,文章末尾附带额外的参数。 有3种方式来调用mysqldump: shell> mysqldump [options] db_name [tables] shell> mysqldump [options] ---database db1 [db2 db3...] shell> ...

    本文介绍一些常用的导入导出,文章末尾附带额外的参数。

    有3种方式来调用mysqldump:

    shell> mysqldump [options] db_name [tables]
    shell> mysqldump [options] ---database db1 [db2 db3...]
    shell> mysqldump [options] --all--database

    示例:

    导出

    导出所有库
    系统CMD命令行:mysqldump -uusername -ppassword --all-databases > all.sql

    注:-uusername -ppassword 中间不空格
    导出某些库
    系统CMD命令行:mysqldump -uusername -ppassword --databases db1 db2 > db1db2.sql

    导出某些数据表
     系统CMD命令行:mysqldump -uusername -ppassword db1 table1 table2 > tb1tb2.sql

    mysqldump字符集设置
     系统CMD命令行: mysqldump -uusername -ppassword --default-character-set=gb2312 db1 table1 > tb1.sql

    导入

    其实导出过后是sql文件,导入就是让mysql执行,可以在系统CMD执行,也可以在Mysql命令中执行

    方式一 : 系统CMD执行:mysqldump -uroot -p123456 databaseName < /var/lib/mysql/sql/campus.sql

    方式二 : mysql命令行中运行: mysql> source 文件.sql;(这个个人感觉好用点)

     

    下面为mysqldump 的其他参数

    1、    --all-databases, -A    //导出全部数据库。

    #mysqldump  -uroot -p --all-databases>outfile.sql

    #mysqldump  -uroot -p -A>outfile.sql      //等同于上句

    2、    --all-tablespaces, -Y     //导出全部表空间。

    #mysqldump  -uroot -p --all-databases --all-tablespaces>outfile.sql

    #mysqldump  -uroot -p –A -Y>outfile.sql      //等同于上句

    3、    --no-tablespaces, -y   //不导出任何表空间信息。

    #mysqldump  -uroot -p --all-databases --no-tablespaces

    #mysqldump  -uroot -p --A –y>outfile.sql  //等同于上句

    4、    --add-drop-database

    //每个数据库创建之前添加drop数据库语句。

    mysqldump  -uroot -p --all-databases --add-drop-database

    5、    --add-drop-table

    每个数据表创建之前添加drop数据表语句。(默认为打开状态,使用--skip-add-drop-table取消选项)

    mysqldump  -uroot -p --all-databases  (默认添加drop语句)

    mysqldump  -uroot -p --all-databases –skip-add-drop-table  (取消drop语句)

    6、    --add-locks

    /在每个表导出之前增加LOCK TABLES并且之后UNLOCK  TABLE。(默认为打开状态,使用--skip-add-locks取消选项)

    mysqldump  -uroot -p --all-databases  (默认添加LOCK语句)

    mysqldump  -uroot -p --all-databases –skip-add-locks   (取消LOCK语句)

    7、    --allow-keywords

    //允许创建是关键词的列名字。这由表名前缀于每个列名做到。

    mysqldump  -uroot -p --all-databases --allow-keywords

    8、    --apply-slave-statements

    在'CHANGE MASTER'前添加'STOP SLAVE',并且在导出的最后添加'START SLAVE'。

    mysqldump  -uroot -p --all-databases --apply-slave-statements

    9、    --character-sets-dir   //字符集文件的目录

    mysqldump  -uroot -p --all-databases  --character-sets-dir=/usr/local/mysql/share/mysql/charsets

    10、  --comments

    附加注释信息。默认为打开,可以用--skip-comments取消

    mysqldump  -uroot -p --all-databases  (默认记录注释)

    mysqldump  -uroot -p --all-databases --skip-comments   (取消注释)

    11、  --compatible

    导出的数据将和其它数据库或旧版本的MySQL 相兼容。值可以为ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options等,要使用几个值,用逗号将它们隔开。它并不保证能完全兼容,而是尽量兼容。

    mysqldump  -uroot -p --all-databases --compatible=ansi

    12、  --compact 

    //导出更少的输出信息(用于调试)。去掉注释和头尾等结构。可以使用选项:--skip-add-drop-table  --skip-add-locks --skip-comments --skip-disable-keys

    mysqldump  -uroot -p --all-databases --compact

    13、  --complete-insert,  -c

    使用完整的insert语句(包含列名称)。这么做能提高插入效率,但是可能会受到max_allowed_packet参数的影响而导致插入失败。

    mysqldump  -uroot -p --all-databases --complete-insert

    14、  --compress, -C 

    //在客户端和服务器之间启用压缩传递所有信息

    mysqldump  -uroot -p --all-databases --compress

    15、  --create-options,  -a 

    //在CREATE TABLE语句中包括所有MySQL特性选项。(默认为打开状态)

    mysqldump  -uroot -p --all-databases

    16、  --databases,  -B

    //导出几个数据库。参数后面所有名字参量都被看作数据库名。

    mysqldump  -uroot -p --databases test mysql

    17、  --debug

    输出debug信息,用于调试。默认值为:d:t:o,/tmp/mysqldump.trace

    mysqldump  -uroot -p --all-databases --debug

    mysqldump  -uroot -p --all-databases --debug=” d:t:o,/tmp/debug.trace”

    18、  --debug-check

    检查内存和打开文件使用说明并退出。

    mysqldump  -uroot -p --all-databases --debug-check

    19、  --debug-info

    输出调试信息并退出

    mysqldump  -uroot -p --all-databases --debug-info

    20、  --default-character-set 

    //设置默认字符集,默认值为utf8

    mysqldump  -uroot -p --all-databases --default-character-set=latin1

    21、  --delayed-insert 

    //采用延时插入方式(INSERT DELAYED)导出数据

    mysqldump  -uroot -p --all-databases --delayed-insert

    22、  --delete-master-logs

    //master备份后删除日志. 这个参数将自动激活--master-data。

    mysqldump  -uroot -p --all-databases --delete-master-logs

    23、  --disable-keys

    对于每个表,用/*!40000 ALTER TABLE tbl_name DISABLE KEYS */;和/*!40000 ALTER TABLE tbl_name ENABLE KEYS */;语句引用INSERT语句。这样可以更快地导入dump出来的文件,因为它是在插入所有行后创建索引的。该选项只适合MyISAM表,默认为打开状态。

    mysqldump  -uroot -p --all-databases 

    24、  --dump-slave

    该选项将导致主的binlog位置和文件名追加到导出数据的文件中。设置为1时,将会以CHANGE MASTER命令输出到数据文件;设置为2时,在命令前增加说明信息。该选项将会打开--lock-all-tables,除非--single-transaction被指定。该选项会自动关闭--lock-tables选项。默认值为0。

    mysqldump  -uroot -p --all-databases --dump-slave=1

    mysqldump  -uroot -p --all-databases --dump-slave=2

    25、  --events, -E     //导出事件。

    mysqldump  -uroot -p --all-databases --events

    26、  --extended-insert,  -e

    使用具有多个VALUES列的INSERT语法。这样使导出文件更小,并加速导入时的速度。默认为打开状态,使用--skip-extended-insert取消选项。

    mysqldump  -uroot -p --all-databases

    mysqldump  -uroot -p --all-databases--skip-extended-insert   (取消选项)

    27、  --fields-terminated-by

    导出文件中忽略给定字段。与--tab选项一起使用,不能用于--databases和--all-databases选项

    mysqldump  -uroot -p test test --tab=”/home/mysql” --fields-terminated-by=”#”

    28、  --fields-enclosed-by

    输出文件中的各个字段用给定字符包裹。与--tab选项一起使用,不能用于--databases和--all-databases选项

    mysqldump  -uroot -p test test --tab=”/home/mysql” --fields-enclosed-by=”#”

    29、  --fields-optionally-enclosed-by

    //输出文件中的各个字段用给定字符选择性包裹。与--tab选项一起使用,不能用于--databases和--all-databases选项

    mysqldump  -uroot -p test test --tab=”/home/mysql”  --fields-enclosed-by=”#” --fields-optionally-enclosed-by  =”#”

    30、  --fields-escaped-by

    输出文件中的各个字段忽略给定字符。与--tab选项一起使用,不能用于--databases和--all-databases选项

    mysqldump  -uroot -p mysql user --tab=”/home/mysql” --fields-escaped-by=”#”

    31、  --flush-logs

    开始导出之前刷新日志。

    请注意:假如一次导出多个数据库(使用选项--databases或者--all-databases),将会逐个数据库刷新日志。除使用--lock-all-tables或者--master-data外。在这种情况下,日志将会被刷新一次,相应的所以表同时被锁定。因此,如果打算同时导出和刷新日志应该使用--lock-all-tables 或者--master-data 和--flush-logs。

    mysqldump  -uroot -p --all-databases --flush-logs

    32、  --flush-privileges

    在导出mysql数据库之后,发出一条FLUSH  PRIVILEGES 语句。为了正确恢复,该选项应该用于导出mysql数据库和依赖mysql数据库数据的任何时候。

    mysqldump  -uroot -p --all-databases --flush-privileges

    33、  --force   //在导出过程中忽略出现的SQL错误。

    mysqldump  -uroot -p --all-databases --force

    34、  --help     //显示帮助信息并退出。

    mysqldump  --help

    35、  --hex-blob

    //使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用该选项。影响到的字段类型有BINARY、VARBINARY、BLOB。

    mysqldump  -uroot -p --all-databases --hex-blob

    36、  --host, -h          //需要导出的主机信息

    mysqldump  -uroot -p --host=localhost --all-databases

    37、  --ignore-table

    不导出指定表。指定忽略多个表时,需要重复多次,每次一个表。每个表必须同时指定数据库和表名。例如:--ignore-table=database.table1 --ignore-table=database.table2 ……

    mysqldump  -uroot -p --host=localhost --all-databases --ignore-table=mysql.user

    38、  --include-master-host-port

    在--dump-slave产生的'CHANGE  MASTER TO..'语句中增加'MASTER_HOST=<host>,MASTER_PORT=<port>'  

    mysqldump  -uroot -p --host=localhost --all-databases --include-master-host-port

    39、  --insert-ignore

    在插入行时使用INSERT IGNORE语句.

    mysqldump  -uroot -p --host=localhost --all-databases --insert-ignore

    40、  --lines-terminated-by

    输出文件的每行用给定字符串划分。与--tab选项一起使用,不能用于--databases和--all-databases选项。

    mysqldump  -uroot -p --host=localhost test test --tab=”/tmp/mysql”  --lines-terminated-by=”##”

    41、  --lock-all-tables,  -x

    提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭--single-transaction 和--lock-tables 选项。

    mysqldump  -uroot -p --host=localhost --all-databases --lock-all-tables

    42、  --lock-tables,  -l

    开始导出前,锁定所有表。用READ  LOCAL锁定表以允许MyISAM表并行插入。对于支持事务的表例如InnoDB和BDB,--single-transaction是一个更好的选择,因为它根本不需要锁定表。

    请注意当导出多个数据库时,--lock-tables分别为每个数据库锁定表。因此,该选项不能保证导出文件中的表在数据库之间的逻辑一致性。不同数据库表的导出状态可以完全不同。

    mysqldump  -uroot -p --host=localhost --all-databases --lock-tables

    43、  --log-error

    附加警告和错误信息到给定文件

    mysqldump  -uroot -p --host=localhost --all-databases  --log-error=/tmp/mysqldump_error_log.err

    44、  --master-data

    该选项将binlog的位置和文件名追加到输出文件中。如果为1,将会输出CHANGE MASTER 命令;如果为2,输出的CHANGE  MASTER命令前添加注释信息。该选项将打开--lock-all-tables 选项,除非--single-transaction也被指定(在这种情况下,全局读锁在开始导出时获得很短的时间;其他内容参考下面的--single-transaction选项)。该选项自动关闭--lock-tables选项。

    mysqldump  -uroot -p --host=localhost --all-databases --master-data=1;

    mysqldump  -uroot -p --host=localhost --all-databases --master-data=2;

    45、  --max_allowed_packet

    服务器发送和接受的最大包长度。

    mysqldump  -uroot -p --host=localhost --all-databases --max_allowed_packet=10240

    46、  --net_buffer_length

    TCP/IP和socket连接的缓存大小。

    mysqldump  -uroot -p --host=localhost --all-databases --net_buffer_length=1024

    47、  --no-autocommit

    使用autocommit/commit 语句包裹表。

    mysqldump  -uroot -p --host=localhost --all-databases --no-autocommit

    48、  --no-create-db,  -n

    只导出数据,而不添加CREATE DATABASE 语句。

    mysqldump  -uroot -p --host=localhost --all-databases --no-create-db

    49、  --no-create-info,  -t

    只导出数据,而不添加CREATE TABLE 语句。

    mysqldump  -uroot -p --host=localhost --all-databases --no-create-info

    50、  --no-data, -d

    不导出任何数据,只导出数据库表结构。

    mysqldump  -uroot -p --host=localhost --all-databases --no-data

    51、  --no-set-names,  -N

    等同于--skip-set-charset

    mysqldump  -uroot -p --host=localhost --all-databases --no-set-names

    52、  --opt

    等同于--add-drop-table,  --add-locks, --create-options, --quick, --extended-insert, --lock-tables,  --set-charset, --disable-keys 该选项默认开启,  可以用--skip-opt禁用.

    mysqldump  -uroot -p --host=localhost --all-databases --opt

    53、  --order-by-primary

    如果存在主键,或者第一个唯一键,对每个表的记录进行排序。在导出MyISAM表到InnoDB表时有效,但会使得导出工作花费很长时间。 

    mysqldump  -uroot -p --host=localhost --all-databases --order-by-primary

    54、  --password, -p    //连接数据库密码

    55、  --pipe(windows系统可用)

    //使用命名管道连接mysql

    mysqldump  -uroot -p --host=localhost --all-databases --pipe

    56、  --port, -P        //连接数据库端口号

    57、  --protocol 

    //使用的连接协议,包括:tcp, socket, pipe, memory.

    mysqldump  -uroot -p --host=localhost --all-databases --protocol=tcp

    58、  --quick, -q

    //不缓冲查询,直接导出到标准输出。默认为打开状态,使用--skip-quick取消该选项。

    mysqldump  -uroot -p --host=localhost --all-databases 

    mysqldump  -uroot -p --host=localhost --all-databases --skip-quick

    59、  --quote-names,-Q

    使用(`)引起表和列名。默认为打开状态,使用--skip-quote-names取消该选项。

    mysqldump  -uroot -p --host=localhost --all-databases

    mysqldump  -uroot -p --host=localhost --all-databases --skip-quote-names

    60、  --replace

    使用REPLACE INTO 取代INSERT INTO.

    mysqldump  -uroot -p --host=localhost --all-databases --replace

    61、  --result-file,  -r

    直接输出到指定文件中。该选项应该用在使用回车换行对(\\r\\n)换行的系统上(例如:DOS,Windows)。该选项确保只有一行被使用。

    mysqldump  -uroot -p --host=localhost --all-databases --result-file=/tmp/mysqldump_result_file.txt

    62、  --routines, -R

    导出存储过程以及自定义函数。

    mysqldump  -uroot -p --host=localhost --all-databases --routines

    63、  --set-charset

    添加'SET NAMES  default_character_set'到输出文件。默认为打开状态,使用--skip-set-charset关闭选项。

    mysqldump  -uroot -p --host=localhost --all-databases 

    mysqldump  -uroot -p --host=localhost --all-databases --skip-set-charset

    64、  --single-transaction

    该选项在导出数据之前提交一个BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于多版本存储引擎,仅InnoDB。本选项和--lock-tables 选项是互斥的,因为LOCK  TABLES 会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用--quick 选项。

    mysqldump  -uroot -p --host=localhost --all-databases --single-transaction

    65、  --dump-date

    将导出时间添加到输出文件中。默认为打开状态,使用--skip-dump-date关闭选项。

    mysqldump  -uroot -p --host=localhost --all-databases

    mysqldump  -uroot -p --host=localhost --all-databases --skip-dump-date

    66、  --skip-opt       //禁用–opt选项.

    mysqldump  -uroot -p --host=localhost --all-databases --skip-opt

    67、  --socket,-S

    指定连接mysql的socket文件位置,默认路径/tmp/mysql.sock

    mysqldump  -uroot -p --host=localhost --all-databases --socket=/tmp/mysqld.sock

    68、  --tab,-T

    为每个表在给定路径创建tab分割的文本文件。注意:仅仅用于mysqldump和mysqld服务器运行在相同机器上。

    mysqldump  -uroot -p --host=localhost test test --tab="/home/mysql"

    69、  --tables

    覆盖--databases (-B)参数,指定需要导出的表名。

    mysqldump  -uroot -p --host=localhost --databases test --tables test

    70、  --triggers

    导出触发器。该选项默认启用,用--skip-triggers禁用它。

    mysqldump  -uroot -p --host=localhost --all-databases --triggers

    71、  --tz-utc

    在导出顶部设置时区TIME_ZONE='+00:00' ,以保证在不同时区导出的TIMESTAMP 数据或者数据被移动其他时区时的正确性。

    mysqldump  -uroot -p --host=localhost --all-databases --tz-utc

    72、  --user, -u         //指定连接的用户名。

    73、  --verbose, --v    //输出多种平台信息。

    74、  --version, -V

    输出mysqldump版本信息并退出

    75、  --where, -w

    只转储给定的WHERE条件选择的记录。请注意如果条件包含命令解释符专用空格或字符,一定要将条件引用起来。

    mysqldump  -uroot -p --host=localhost --all-databases --where=” user=’root’”

    76、  --xml, -X     //导出XML格式.

    mysqldump  -uroot -p --host=localhost --all-databases --xml

    77、  --plugin_dir

    客户端插件的目录,用于兼容不同的插件版本。

    mysqldump  -uroot -p --host=localhost --all-databases --plugin_dir=”/usr/local/lib/plugin”

    78、  --default_auth

    客户端插件默认使用权限。

    mysqldump  -uroot -p --host=localhost --all-databases --default-auth=”/usr/local/lib/plugin/<PLUGIN>”

    展开全文
  • 一、相关导出语句 1、导出数据库(带drop表结构、表数据):  mysqldump -uroot -p --databases 数据库名 --tables 表名1 表名2 &gt;E:db1.sql  --tables 表1 表2 为可选字段。 2、条件导出...

    一、相关导出语句

    1、导出数据库(带drop表结构、表数据):

          mysqldump  -uroot  -p  --databases 数据库名 --tables 表名1  表名2  >E:db1.sql

             --tables 表1  表2 为可选字段。

    2、条件导出数据库表数据(带drop表结构、表数据):

              mysqldump -uroot -p --databases 数据库名 --tables 表名 --where=字段名='字段值'  >E:a1.sql

    3、只导出表结构(带drop语句)

          mysqldump -uroot -p  --opt  -d  数据库名 >E:123123.sql

         mysqldump -uroot -p --no-data --databases 数据库名 >E:db1.sql

    4、只导出表结构(不带drop语句)

    mysqldump -uroot  -p123456 --skip-extended-insert --complete-insert -t 数据库名 表名(可多个) >E:/123.sql

    -t :取消建表语句。

    --skip-extended-insert :每条记录占一行。

    --complete-insert :带字段名的完整insert语句。

    --skip-add-drop-table :取消drop表语句。

    -h  连接远程数据库   -h 192.168.30.62

    -P 端口号

    例: 将192.168.26.128:3306/test数据库中其中三张表的数据导出为insert into完整语句的sql文件。

    mysqldump -h 192.168.26.128 -P 3306 -uroot  -p  --skip-extended-insert --complete-insert -t  test CONTACT_CERTIFICATE CONTACT_MECH CUSTOMER_INFO  >E:/test.sql

    二、相关mysqldump的参数说明:

    1、--all-databases  导出全部数据库。

    mysqldump  -uroot -p --all-databases

    2、--all-tablespaces  导出全部表空间

    mysqldump  -uroot -p --all-databases --all-tablespaces

    3、--no-tablespaces  不导出任何表空间信息。

    mysqldump  -uroot -p --all-databases --no-tablespaces

    4、--add-drop-database 每个数据库创建之前添加drop数据库语句。

    mysqldump  -uroot -p --all-databases --add-drop-database

    5、--add-drop-table  每个数据表创建之前添加drop数据表语句。

        (默认为打开状态,使用--skip-add-drop-table取消选项)
    mysqldump  -uroot -p --all-databases  (默认添加drop语句)
    mysqldump  -uroot -p --all-databases –skip-add-drop-table  (取消drop语句)

    6、--add-locks  在每个表导出之前增加LOCK TABLES并且之后UNLOCK  TABLE。

    (默认为打开状态,使用--skip-add-locks取消选项)
    mysqldump  -uroot -p --all-databases  (默认添加LOCK语句)
    mysqldump  -uroot -p --all-databases –skip-add-locks   (取消LOCK语句)

    7、--allow-keywords 允许创建是关键词的列名字。这由表名前缀于每个列名做到。

    mysqldump  -uroot -p --all-databases --allow-keywords

    8、--apply-slave-statements  在'CHANGE MASTER'前添加'STOP SLAVE',并且在导出的最后添加'START SLAVE'。

    mysqldump  -uroot -p --all-databases --apply-slave-statements

    9、--character-sets-dir 字符集文件的目录

    mysqldump  -uroot -p --all-databases  --character-sets-dir=/usr/local/mysql/share/mysql/charsets

    10、--comments 附加注释信息。默认为打开,可以用--skip-comments取消

    mysqldump  -uroot -p --all-databases  (默认记录注释)
    mysqldump  -uroot -p --all-databases --skip-comments   (取消注释)

    11、--compatible 导出的数据将和其它数据库或旧版本的MySQL 相兼容。

    值可以为ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options等,
    要使用几个值,用逗号将它们隔开。它并不保证能完全兼容,而是尽量兼容。
    mysqldump  -uroot -p --all-databases --compatible=ansi

    12、--compact 导出更少的输出信息(用于调试)。去掉注释和头尾等结构。

    可以使用选项:--skip-add-drop-table  --skip-add-locks --skip-comments --skip-disable-keys
    mysqldump  -uroot -p --all-databases --compact

    13、--complete-insert,  -c  使用完整的insert语句(包含列名称)。

    这么做能提高插入效率,但是可能会受到max_allowed_packet参数的影响而导致插入失败。
    mysqldump  -uroot -p --all-databases --complete-insert

    14、--compress, -C    在客户端和服务器之间启用压缩传递所有信息

    mysqldump  -uroot -p --all-databases --compress

    15、--create-options,  -a 在CREATE TABLE语句中包括所有MySQL特性选项。(默认为打开状态)

    mysqldump  -uroot -p --all-databases

    16、--databases,  -B   导出几个数据库。参数后面所有名字参量都被看作数据库名。

    mysqldump  -uroot -p --databases test mysql

    17、--debug 输出debug信息,用于调试。

    默认值为:d:t,/tmp/mysqldump.trace
    mysqldump  -uroot -p --all-databases --debug
    mysqldump  -uroot -p --all-databases --debug=” d:t,/tmp/debug.trace”

    18、--debug-check 检查内存和打开文件使用说明并退出。

    mysqldump  -uroot -p --all-databases --debug-check

    19、--debug-info  输出调试信息并退出

    mysqldump  -uroot -p --all-databases --debug-info

    20、--default-character-set  设置默认字符集,默认值为utf8

    mysqldump  -uroot -p --all-databases --default-character-set=utf8

    21、--delayed-insert 采用延时插入方式(INSERT DELAYED)导出数据

    mysqldump  -uroot -p --all-databases --delayed-insert

    22、--delete-master-logs      master备份后删除日志.

    这个参数将自动激活--master-data。

    mysqldump  -uroot -p --all-databases --delete-master-logs

    23、--disable-keys

    对于每个表,用/*!40000 ALTER TABLE tbl_name DISABLE KEYS */;和/*!40000 ALTER TABLE tbl_name ENABLE KEYS */;语句引用INSERT语句。这样可以更快地导入dump出来的文件,因为它是在插入所有行后创建索引的。该选项只适合MyISAM表,默认为打开状态。
    mysqldump  -uroot -p --all-databases 

    24、--dump-slave   该选项将主的binlog位置和文件名追加到导出数据的文件中(show slave status)。

    设置为1时,将会以CHANGE MASTER命令输出到数据文件;设置为2时,会在change前加上注释。该选项将会打开--lock-all-tables,除非--single-transaction被指定。该选项会自动关闭--lock-tables选项。默认值为0。
    mysqldump  -uroot -p --all-databases --dump-slave=1
    mysqldump  -uroot -p --all-databases --dump-slave=2

    25、--master-data   该选项将当前服务器的binlog的位置和文件名追加到输出文件中(show master status)。

    如果为1,将会输出CHANGE MASTER 命令;如果为2,输出的CHANGE  MASTER命令前添加注释信息。该选项将打开--lock-all-tables 选项,除非--single-transaction也被指定(在这种情况下,全局读锁在开始导出时获得很短的时间;其他内容参考下面的--single-transaction选项)。该选项自动关闭--lock-tables选项。
    mysqldump  -uroot -p --host=localhost --all-databases --master-data=1;
    mysqldump  -uroot -p --host=localhost --all-databases --master-data=2;

    26、--events, -E   导出事件。

    mysqldump  -uroot -p --all-databases --events

    27、--extended-insert,  -e     使用具有多个VALUES列的INSERT语法。

    这样使导出文件更小,并加速导入时的速度。默认为打开状态,使用--skip-extended-insert取消选项。
    mysqldump  -uroot -p --all-databases
    mysqldump  -uroot -p --all-databases--skip-extended-insert   (取消选项)

    28、--fields-terminated-by    导出文件中忽略给定字段。

    与--tab选项一起使用,不能用于--databases和--all-databases选项
    mysqldump  -uroot -p test test --tab=”/home/mysql” --fields-terminated-by=”#”

    29、--fields-enclosed-by   输出文件中的各个字段用给定字符包裹。

    与--tab选项一起使用,不能用于--databases和--all-databases选项
    mysqldump  -uroot -p test test --tab=”/home/mysql” --fields-enclosed-by=”#”

    30、--fields-optionally-enclosed-by   输出文件中的各个字段用给定字符选择性包裹。

    与--tab选项一起使用,不能用于--databases和--all-databases选项
    mysqldump  -uroot -p test test --tab=”/home/mysql”  --fields-enclosed-by=”#” --fields-optionally-enclosed-by  =”#”

    31、--fields-escaped-by   输出文件中的各个字段忽略给定字符。

    与--tab选项一起使用,不能用于--databases和--all-databases选项
    mysqldump  -uroot -p mysql user --tab=”/home/mysql” --fields-escaped-by=”#”

    32、--flush-logs  开始导出之前刷新日志。

    请注意:假如一次导出多个数据库(使用选项--databases或者--all-databases),将会逐个数据库刷新日志。除使用--lock-all-tables或者--master-data外。在这种情况下,日志将会被刷新一次,相应的所以表同时被锁定。因此,如果打算同时导出和刷新日志应该使用--lock-all-tables 或者--master-data 和--flush-logs。
    mysqldump  -uroot -p --all-databases --flush-logs

    33、--flush-privileges在导出mysql数据库之后,发出一条FLUSH  PRIVILEGES 语句。

    为了正确恢复,该选项应该用于导出mysql数据库和依赖mysql数据库数据的任何时候。
    mysqldump  -uroot -p --all-databases --flush-privileges

    34、--force 在导出过程中忽略出现的SQL错误。

    mysqldump  -uroot -p --all-databases --force

    35、--help   显示帮助信息并退出。

    mysqldump  --help

    36、--hex-blob   使用十六进制格式导出二进制字符串字段。

    如果有二进制数据就必须使用该选项。影响到的字段类型有BINARY、VARBINARY、BLOB。
    mysqldump  -uroot -p --all-databases --hex-blob

    37、--host, -h  需要导出的主机信息

    mysqldump  -uroot -p --host=localhost --all-databases

    38、--ignore-table不导出指定表。指定忽略多个表时,需要重复多次,每次一个表。

    每个表必须同时指定数据库和表名。例如:--ignore-table=database.table1 --ignore-table=database.table2 ……
    mysqldump  -uroot -p --host=localhost --all-databases --ignore-table=mysql.user

    39、--include-master-host-port   

    在--dump-slave产生的'CHANGE  MASTER TO..'语句中增加'MASTER_HOST=<host>,MASTER_PORT=<port>'  

    mysqldump  -uroot -p --host=localhost --all-databases --include-master-host-port

    40、--insert-ignore   在插入行时使用INSERT IGNORE语句.

    mysqldump  -uroot -p --host=localhost --all-databases --insert-ignore

    41、--lines-terminated-by    输出文件的每行用给定字符串划分。

    与--tab选项一起使用,不能用于--databases和--all-databases选项。
    mysqldump  -uroot -p --host=localhost test test --tab=”/tmp/mysql”  --lines-terminated-by=”##”

    42、--lock-all-tables,  -x  提交请求锁定所有数据库中的所有表,以保证数据的一致性。

    这是一个全局读锁,并且自动关闭--single-transaction 和--lock-tables 选项。
    mysqldump  -uroot -p --host=localhost --all-databases --lock-all-tables

    43、--lock-tables,  -l   开始导出前,锁定所有表。

    用READ  LOCAL锁定表以允许MyISAM表并行插入。对于支持事务的表例如InnoDB和BDB,--single-transaction是一个更好的选择,因为它根本不需要锁定表。
    请注意当导出多个数据库时,--lock-tables分别为每个数据库锁定表。因此,该选项不能保证导出文件中的表在数据库之间的逻辑一致性。不同数据库表的导出状态可以完全不同。
    mysqldump  -uroot -p --host=localhost --all-databases --lock-tables

    44、--log-error   附加警告和错误信息到给定文件

    mysqldump  -uroot -p --host=localhost --all-databases  --log-error=/tmp/mysqldump_error_log.err

    45、--max_allowed_packet  服务器发送和接受的最大包长度。

    mysqldump  -uroot -p --host=localhost --all-databases --max_allowed_packet=10240

    46、--net_buffer_length   TCP/IP和socket连接的缓存大小。

    mysqldump  -uroot -p --host=localhost --all-databases --net_buffer_length=1024

    47、--no-autocommit     使用autocommit/commit 语句包裹表。

    mysqldump  -uroot -p --host=localhost --all-databases --no-autocommit

    48、--no-create-db,  -n    只导出数据,而不添加CREATE DATABASE 语句。

    mysqldump  -uroot -p --host=localhost --all-databases --no-create-db

    49、--no-create-info,  -t     只导出数据,而不添加CREATE TABLE 语句。

    mysqldump  -uroot -p --host=localhost --all-databases --no-create-info

    50、--no-data, -d    不导出任何数据,只导出数据库表结构。

    mysqldump  -uroot -p --host=localhost --all-databases --no-data

    51、--no-set-names,  -N    等同于--skip-set-charset

    mysqldump  -uroot -p --host=localhost --all-databases --no-set-names

    52、--opt   

    等同于--add-drop-table,  --add-locks, --create-options, --quick, --extended-insert, --lock-tables,  --set-charset, --disable-keys 该选项默认开启,  可以用--skip-opt禁用.
    mysqldump  -uroot -p --host=localhost --all-databases --opt

    53、--order-by-primary   如果存在主键,或者第一个唯一键,对每个表的记录进行排序。

    在导出MyISAM表到InnoDB表时有效,但会使得导出工作花费很长时间。 
    mysqldump  -uroot -p --host=localhost --all-databases --order-by-primary

    54、--password, -p  连接数据库密码

    55、--pipe(windows系统可用)   使用命名管道连接mysql

    mysqldump  -uroot -p --host=localhost --all-databases --pipe

    56、--port, -P  连接数据库端口号

    57、--protocol   使用的连接协议,包括:tcp, socket, pipe, memory.

    mysqldump  -uroot -p --host=localhost --all-databases --protocol=tcp

    58、--quick, -q   不缓冲查询,直接导出到标准输出。

    默认为打开状态,使用--skip-quick取消该选项。
    mysqldump  -uroot -p --host=localhost --all-databases 
    mysqldump  -uroot -p --host=localhost --all-databases --skip-quick

    59、--quote-names,-Q     使用(`)引起表和列名。

    默认为打开状态,使用--skip-quote-names取消该选项。
    mysqldump  -uroot -p --host=localhost --all-databases
    mysqldump  -uroot -p --host=localhost --all-databases --skip-quote-names

    60、--replace   使用REPLACE INTO 取代INSERT INTO.

    mysqldump  -uroot -p --host=localhost --all-databases --replace

    61、--result-file,  -r   直接输出到指定文件中。

    该选项应该用在使用回车换行对(\\r\\n)换行的系统上(例如:DOS,Windows)。该选项确保只有一行被使用。
    mysqldump  -uroot -p --host=localhost --all-databases --result-file=/tmp/mysqldump_result_file.txt

    62、--routines, -R    导出存储过程以及自定义函数。

    mysqldump  -uroot -p --host=localhost --all-databases --routines

    63、--set-charset   添加'SET NAMES  default_character_set'到输出文件。

    默认为打开状态,使用--skip-set-charset关闭选项。
    mysqldump  -uroot -p --host=localhost --all-databases 
    mysqldump  -uroot -p --host=localhost --all-databases --skip-set-charset

    64、--single-transaction

    该选项在导出数据之前提交一个BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于多版本存储引擎,仅InnoDB。本选项和--lock-tables 选项是互斥的,因为LOCK  TABLES 会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用--quick 选项。
    mysqldump  -uroot -p --host=localhost --all-databases --single-transaction

    65、--dump-date   将导出时间添加到输出文件中。

    默认为打开状态,使用--skip-dump-date关闭选项。
    mysqldump  -uroot -p --host=localhost --all-databases
    mysqldump  -uroot -p --host=localhost --all-databases --skip-dump-date

    66、--skip-opt    禁用–opt选项.

    mysqldump  -uroot -p --host=localhost --all-databases --skip-opt

    67、--socket,-S      指定连接mysql的socket文件位置,默认路径/tmp/mysql.sock

    mysqldump  -uroot -p --host=localhost --all-databases --socket=/tmp/mysqld.sock

    68、--tab,-T     为每个表在给定路径创建tab分割的文本文件。

    注意:仅仅用于mysqldump和mysqld服务器运行在相同机器上。注意使用--tab不能指定--databases参数
    mysqldump  -uroot -p --host=localhost test test --tab="/home/mysql"

    69、--tables    覆盖--databases (-B)参数,指定需要导出的表名,在后面的版本会使用table取代tables。

    mysqldump  -uroot -p --host=localhost --databases test --tables test

    70、--triggers    导出触发器。

    该选项默认启用,用--skip-triggers禁用它。
    mysqldump  -uroot -p --host=localhost --all-databases --triggers

    71、--tz-utc    在导出顶部设置时区TIME_ZONE='+00:00' ,

    以保证在不同时区导出的TIMESTAMP 数据或者数据被移动其他时区时的正确性。
    mysqldump  -uroot -p --host=localhost --all-databases --tz-utc

    72、--user, -u     指定连接的用户名。

    73、--verbose, --v   输出多种平台信息。

    74、--version, -V   输出mysqldump版本信息并退出

    75、--where, -w   只转储给定的WHERE条件选择的记录。

    请注意如果条件包含命令解释符专用空格或字符,一定要将条件引用起来。
    mysqldump  -uroot -p --host=localhost --all-databases --where=” user=’root’”

    76、--xml, -X     导出XML格式.

    mysqldump  -uroot -p --host=localhost --all-databases --xml

    77、--plugin_dir   客户端插件的目录,用于兼容不同的插件版本。

    mysqldump  -uroot -p --host=localhost --all-databases --plugin_dir=”/usr/local/lib/plugin”

    78、--default_auth   客户端插件默认使用权限。

    mysqldump  -uroot -p --host=localhost --all-databases --default-auth=”/usr/local/lib/plugin/<PLUGIN>”

     

     

    展开全文
  • PowerDesigner 导出 sql 语句

    万次阅读 2017-02-14 16:16:22
    PowerDesigner 导出 sql 文件
  • [Sqoop]Sqoop导入与导出

    千次阅读 2016-11-13 19:59:43
    Sqoop导出的数据文件变成了CSV文件(逗号分割)。这时,如果查看执行Sqoop命令的当前文件夹,会发现多了一个employee.java文件,这是Sqoop自动生成的Java源文件。 xiaosi@Qunar :/ opt / sqoop - 1.4 . 6 / bin$ ll ...
  • figma:按组导出

    千次阅读 2020-12-11 01:32:01
    最近发现达芬奇能读取psd的图层信息,以往要拿图层做MG动画,都要将分层单独导出,为了省去调整坐标和宽高的大小,导出的png都是1920x1080(视频是这个尺寸),这些工作都想在Figma里完成。 Round One 以往的经验是...
  • python3从友盟批量导出app统计数据

    千次阅读 2019-05-08 18:28:42
    虽然友盟提供了图表可视化功能,对应的数据都会在图表附近给出下载链接,但也恰恰因为如此,导致不同的数据指标分散在各个不同的页面,变成了按不同应用、不同页面、不同维度划分的碎片化数据。因此,从友盟导出数据...
  • 根据网格划分的知识,建立好图18所示的网格模型,在图4的export下拉菜单里有一个mesh命令,选择该命令 图19 图19所示的mesh的子菜单里我们看到几个选项,第一个是导出feko的网格模型,第二个是导出nastran软件...
  • 【Mysql】mysql数据导入导出

    千次阅读 2016-01-19 11:42:12
    一、使用into outfile和load data infile导入导出备份数据 二、使用mysqldump导出数据库 三、mysqldump参数说明
  • java 使用itext导出PDF文件,带图片布局。导出pdf效果如下代码代码块语法遵循标准markdown代码,例如:/** * 思路:使用嵌套表格对象完成数据,图片左右布局 * 1、创建document对象。 * 2、创建表格对象PdfPTable...
  • mysqldump导出多数据库操作

    千次阅读 2018-09-17 17:28:37
    导出数据库 1.mysqldump导出所有库 mysqldump -uroot -ppassword -A > mysql_dump.sql 2.导出所有+忽略特殊库 mysql -e "show databases;" -uroot -ppassword | grep -Ev "Database|db1|db2|test" | xargs ...
  • Oracle数据泵导入导出是日常工作中常用的基本技术之一,我们使用oracle数据库数据泵导入(impdp)导出(expdp)进行数据库备份,数据库迁移等数据库维护工作。本文主要说明oracle数据库导入导出的命令。
  • DLL接口的导出

    2014-03-28 12:21:46
    实现可以被认为真正的模块划分的第一步。总的来说,它是使工程达到模块化值得去做的事   缺点   l  从一个 DLL 中导出 C++ 类在它的对象和使用者需要保持紧密的联系。 DLL 应该被视作一个带有考虑到...
  • 在使用itext 导出pdf 的过程中,可能会遇到这样的需求,就是导出文字加图片。使用我们前面写的程序,确实是可以导出图片,如果针对于类似简历的需求,图片填充单元格,会满足效果,如下图所示: 但在实际的很多需求...
  • 用xe命令导出/导入虚拟机或快照 导出/导入虚拟机: 1、关闭需要导出的虚拟机 ...filename=导出虚拟机的路径,这个需要提前挂载一个移动硬盘,或者直接在存储上划分挂载一个LVM卷,我用的是NFS共享 3、导入虚拟机(可
  • 我们在工作中经常会遇到,把Xenserver中的虚拟机或者快照导出,然后导入到另一台Xenserver,或者导出来备份下来,以防虚拟机出现故障。下面介绍一下用xe命令如何导出/导入虚拟机或快照,当然也可以直接用XenCenter来...
  • oracle导入导出数据的几种方式

    万次阅读 2016-09-02 11:42:13
    oracle导入导出数据 1.导出dmp格式文件 --备份某几张表 !!!! exp smsc/smsc file=/data/oracle_bak/dmp/bakup0209_2.dmp tables=\(send_msg_his,send_msg,recv_msg_his,recv_msg\) --备份整个数据库 !!!! ...
  • 允许同时导入或导出多个sheet,同一sheet可同时存在多个数据块,按数据块划分处理数据。 二、配置文件示例及详细说明 1、导入xml配置示例如下(见src/main/resources/import-config.xml) 2、导出xml配置示例如下...
  • sqoop详细导入导出数据步骤

    千次阅读 2020-07-24 02:35:34
    sqoop的作用前面也说过主要用于做数据迁移,它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库的互相导入。 Sqoop功能 将关系型数据库数据导入HDFS,解决HDFS的...
  • 用Enterprise Architect(EA)软件画类图时,不同模块的图建在了不同的EA文件中,后来要求要合并到同一个文件中(即:把多个文件放到同一个文件中,还是要划分模块的),捣饬了好半天才知道要怎样实现,这里跟大家...
  • oracle之——oracle数据库数据导入导出步骤(入门)

    万次阅读 多人点赞 2017-04-18 16:38:59
    oracle数据库数据导入导出步骤(入门)说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp命令导入导出,避免第三方工具...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,429
精华内容 17,771
关键字:

导出的划分