|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
MySQLAB公司的一个高级开发者者表示,“这个特点使得MySQL可以根据你当前的系统的需要来进行调整。”这个剧本是利用Perl天生Excelxls文件的工具。依附一些模块,你能够在linux下利用,发生xls文件。利用体例是命令行+参数。十分便利这个剧本是利用Perl天生excelxls文件的工具。依附一些模块,你能够在linux下利用,发生xls文件。利用体例是命令行+参数。十分便利。
#!/usr/bin/perl
#===============================
#MySQLtoexcel
#lastmodifyat2005-1-5
#copyrightbyhoowa
#=============================
usestrict;#严厉语法检测
useDBI;#数据库引擎
useUnicode::Map;#Unicode引擎
#useSPReadsheet::WriteExcel;#Excel报表引擎
useSpreadsheet::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){
printqq~syntax:my2excel.pl<writefilename>"[whereexpression]"
~;
exit;
}
$ARGV[1]=~s/"//g;
warnqq~
mysqltoexcel
byhoowa.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()ordie$sth->errstr;
warn"rows:$rowsfound.
";
my@cols_name=@{$sth->{NAME}};
if($#cols_name>$#cols){
print"table$ARGV[1]fieldsoutofallow!!(maxnum.>".($#cols+1).")
";
exit;
}
warn"writeto:$ARGV[0]
";
#天生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++){
nextif($row[$i]eq);
$sheet->write_unicode($sheet_col,$i,$map->to_unicode($row[$i]));
}
}
warn"alldone!!!
";
#停止
END{
$report->close()if($report);
$dbh->disconnect();
}
对免费版的用户也具有充足的支持服务。在dev.mysql.com上,一个大型的MySQL学习教程强大社区用户和开发者可以讨论所有关于MySQL的事情。这个站点拥有博客、指南、视频、技术交流会、白皮书和论坛等方式的交流。 |
|