从MySQL导出XLS数据库工具

这个脚本是使用Perl生成excelxls文件的工具。依赖一些模块,你可以在linux下使用,产生xls文件。使用方式是命令行+参数。非常方便。

#!/usr/bin/perl
#===============================
# mysql to excel
# lastmodify at 2005-1-5
# copyright by hoowa
#=============================
use strict; #严格语法检测
use DBI; #数据库引擎
use Unicode::Map; #Unicode引擎
#use Spreadsheet::WriteExcel; #Excel报表引擎
use Spreadsheet::WriteExcel::Big; #大文件Excel报表引擎
my $hostname='192.168.1.133';
my $username='user';
my $password='pass';
my $dbname='db';
my $trans_compress=1; #任何非一的数关闭数据库到程序间传输压缩
$|=1;
my @cols=('A:A','B:B','C:C','D:D','E:E','F:F','G:G','H:H','I:I','J:J',
'K:K','L:L','M:M','N:N','O','P:P','Q:Q','R:R','S:S','T:T','U:U',
'V:V','W:W','X:X','Y:Y','Z:Z','AA:A','BB:B','CC:C','DD:D','EE:E',
'FF:F','GG:G','HH:H','II:I','JJ:J','KK:K','LL:L','MM:M','NN:N',
'OO','PP:P','QQ:Q','RR:R','SS:S','TT:T','UU:U','VV:V','WW:W',
'XX:X','YY:Y','ZZ:Z');
#解析来内容
if ($#ARGV != '1') {
print qq~syntax: my2excel.pl <writefilename> "[where expression]"
~;
exit;
}
$ARGV[1]=~ s/\"//g;
warn qq~
mysql to excel
by hoowa.sun
=====================
sql: $ARGV[1]
~;
my $dbh =
DBI->connect("DBI:mysql:mysql_compression=$trans_compress;
database=$dbname;host=$hostname",$username,$password);
my $sth = $dbh->prepare("$ARGV[1]") || die $dbh->errstr;
my $rows = $sth->execute() or die $sth->errstr;
warn "rows: $rows found.\n";
my @cols_name = @{$sth->{'NAME'}};
if ($#cols_name > $#cols) {
print "table $ARGV[1] fields out of allow!!(max num. > ".($#cols+1).")\n";
exit;
}
warn "write t $ARGV[0]\n";
#生成GB2312编码系统
my $map = Unicode::Map->new("gb2312");
#产生报表
my $report = Spreadsheet::WriteExcel::Big->new("$ARGV[0]") || die "不能生成报表文件:$!";
#创建报表的工作表
my $sheet = $report->add_worksheet('data_report');
#创建格式
my $title_style = $report->add_format(); $title_style->set_size(11); $title_style->set_bold(); $title_style->set_align('center');
#初始化数据指针
my $sheet_col = 0;
#创建表格
for (my $i=0;$i<=$#cols_name ;$i++) {
$sheet->set_column($cols[$i], length($cols_name[$i])+4);
$sheet->write_unicode($sheet_col,$i,$map->to_unicode($cols_name[$i]),$title_style);
}
$sheet->freeze_panes(1, 0);#冻结行
while (my @row = $sth->fetchrow_array) {
$sheet_col++;
for (my $i=0;$i<=$#cols_name ;$i++) {
next if ($row[$i] eq '');
$sheet->write_unicode($sheet_col,$i,$map->to_unicode($row[$i]));
}
}
warn "all done!!!\n";
#结束
END {
$report->close() if ($report);
$dbh->disconnect();
}

时间: 2024-11-17 14:47:21

从MySQL导出XLS数据库工具的相关文章

从MySQL导出XLS数据库工具(跨平台)

mysql|数据|数据库  这个脚本是使用Perl生成excel xls文件的工具.依赖一些模块,你可以在linux下使用,产生xls文件.使用方式是命令行+参数.非常方便这个脚本是使用Perl生成excel xls文件的工具.依赖一些模块,你可以在linux下使用,产生xls文件.使用方式是命令行+参数.非常方便.#!/usr/bin/perl#===============================#     mysql to excel#     lastmodify at 2005

mysql 导出 xls 与csv 数据实现与乱码解决方法

mysql教程 导出 xls 与csv 数据实现与乱码解决方法 下面关于 先来看mysql 导出导入 xls 与csv数据实例方法,同时在碰到导入乱码时的有效解决方法, 在mysql命令行下执行以下sql语句: mysql>select * from xi_table into outfile 'd:www.111cn.nettest.xls'; 有时候有excel打开的时候会出现乱码, 因为office默认的是gb2312编码,服务器端生成的很有可能是utf-8编码,可以在服务器端使用icon

mysql导出xls文件方法

在php中操作  代码如下 复制代码 <?php include('db/db.php');  //包含连库类 $db = new db(); $result = mysql_query('select * from market_sig into outfile "d:product3.xls";'); var_dump($result); ?> 在cmd方式下操作  代码如下 复制代码 mysql   -uroot   -p   -e   "select  

MySQL数据导入导出方法与工具介绍(1- myslqimport utility)

mysql|数据             MySQL数据导入导出方法与工具介绍(1- myslqimport utility)              mysqlimport文本文件导入工具介绍 翻译声明:    本文内容来自Sam's Teach Yourself MySQL in 21 Days一书的部分内容,by Mark Maslakowski      英文原文版权属原作者所有,中文的部分翻译有略有增删;原书讲的过于清楚的地方有删,讲的不清楚的地方有增:如果有翻译的不妥或者不正确的地

MySQL数据导入导出方法与工具介绍(2-import from sql files)

mysql|数据    MySQL数据导入导出方法与工具介绍(2-import from sql files)          批处理导入文件,从sql文件导入数据到数据库中 翻译声明:    本文内容来自Sam's Teach Yourself MySQL in 21 Days一书的部分内容,by Mark Maslakowski    英文原文版权属原作者所有,中文的部分翻译有略有增删;原书讲的过于清楚的地方有删,讲的不清楚的地方有增:如果有翻译的不妥或者不正确的地方,请指正. 翻译者:D

MySQL数据导入导出方法与工具介绍(3-Exporting Data)

mysql|数据                MySQL数据导入导出方法与工具介绍(3-Exporting Data)                  导出数据的方法:Methods of Exporting Data 翻译声明:    本文内容来自Sam's Teach Yourself MySQL in 21 Days一书的部分内容,by Mark Maslakowski    英文原文版权属原作者所有,中文的部分翻译有略有增删;原书讲的过于清楚的地方有删,讲的不清楚的地方有增:如果有翻

mysql导出数据库几种方法

  mysql教程导出数据库教程几种方法 方法一 cmd 到mysql bin目录下用 如下命令 mysqldump --opt -h192.168.0.156 -uusername -ppassword --skip-lock-tables databasename>database.sql 把ip改成localhost就可以的 如果装了navicate那就更简单了 先连接上数据库,选中数据库 再选择转储sql 就好了 方法二 进入cmd (注意在os cmd中 而不是在mysql中) ===

MySQL数据的导出和导入工具:mysqldump

导出要用到MySQL的mysqldump工具,基本用法是: shell> mysqldump [OPTIONS] database [tables] 如果 你不给定任何表,整个数据库将被导出. 通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表. 注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题. mysqldump支持下列选项: -

MySQL结合使用数据库分析工具SchemaSpy的方法_Mysql

 近来,我和一帮老客户一起工作,他们让花时间给他们说一下在他们新环境中使用的新工具.其中,我发现的一个非常有用的工具是SchemaSpy. SchemaSpy是Java开发的的工具(要求java 5或更高版本的支持),主要用来分析数据库中数据模型的元数据,并且能生成基于浏览器可视化的显示.通过点击就可了解数据表的层次结构,父子表关系等,主要通过HTML 链接或者实体关系图来表达.它也被设计成用来帮助解决由于约束而导致的数据库关联失败的迟钝错误. 我所喜欢ERD工具所能做的一件事是能快速的生成一个