快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

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

这个脚本是使用Perl生成excel xls文件的工具。依靠一些模块,你可以在linux下使用,产生xls文件。使用方法是命令行+参数。异常方便这个脚本是使用Perl生成excel xls文件的工具。依靠一些模块,你可以在linux下使用,产生xls文件。使用方法是命令行+参数。异常方便。
#!/usr/bin/perl

# mysql to excel
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: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:O\\\',\\\'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 to: $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();
}
返回类别: 教程
上一教程: SQL SERVER的用户及权限
下一教程: 样设置为使用OLEDB连接我的ACCESS数据库

您可以阅读与"从MYSQL导出XLS数据库工具(跨平台)"相关的教程:
· MYSQL数据库结构和数据的导出和导入
· MYSQL数据的导出和导入工具:MYSQLDUMP
· 怎样将MYSQL数据库结构和数据导出或导入
· MYSQL数据库安全配置
· LINUX下建立MYSQL镜像数据库
    微笑服务 优质保证 索取样品