动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.Oracle 10g第2版新特性之性能特性.
.Oracle 9i的两种工作模式.
.在linux8.0下,oracle9i的配置说.
.ORACLE要点综述(之一:基本SELEC.
.在Oracle数据库里用存储过程定期.
.详细讲解RHEL AS4安装Oracle 10R.
.带你走进Oracle数据安全的世界一.
.SCO UnixWare 7.1.3下安装Oracle.
.最新Redhat Linux9 quota磁盘空间.
.Oracle9i重建与切换临时表空间.
.连接到oracle数据库(一).
.如何移动表来减小数据文件的大小.
.ORACLE SQL性能优化系列 (七 ).
.从MySQL中导出XLS数据库工具.
.甲骨文意外泄漏数据库安全漏洞.
.PL/SQL Packages and Types Refe.
.一个可以在Oracle发信的Procedur.
.Eclipse是如何连接Oracle数据库的.
.MIS系统实例中Oracle数据库的安全.
.oracle开发 TNS-12500的解决过程.

用Perl的WriteExcel从数据库生成电子数据表格文件

发表日期:2008-2-9 |



  许多商业最终用户更喜欢使用目前流行的电子数据表格程序(如Microsoft Excel),而不是数据库功能或应用程序。尽管Excel可以用ODBC及相关技术来提取储存在Oracle数据库当中的数据,但想让用户建立一个环境来直接访问数据或是通过安装脚本来安装数据资源可能会不大合理。
  
  因此,对于程序开发人员来说,从储存在数据库中的数据生成一个电子数据表格,并通过e-mail或网站将其文档传回用户手中,是一个非常基本的一般要求。
  
  关于如何生成Excel电子数据表格,一个典型回答是,生成一个CSV(comma-separated values)文件,在这里每一个字段都用一个Text属性来说明,可能包含在引号里。这种情况下,这个文件作为原始数据被终端用户接受,终端用户在Excel下打开它,通过一个对话将数据正确的分解成电子数据表格中的单元格。
  
  也可能仅仅通过传送作为一个电子数据表格属性的公式(如“=A1+B1”),将这些公式写进电子数据表格,而这个公式只有在字段被准确读取到正确位置时才会有用。在这种情况下,没有格式化控制,当数据读入时,最终用户只能手工将一个电子数据表格重新格式化。
  
  一个Perl替代品
  现在有了一个非常有用的CSV文件的替代品。John McNamara创建了一个Perl模块,叫做Spreadsheet::WriteExcel,它能动态生成一个真正的、二进制的、Excel的电子数据表格文件。
  
  在这个模块中,你可以创建一个工作手册,并在其中加入工作表,然后直接写入工作表单元格。有许多格式化选项答应你改变字段数据的格式、黑体、对齐方式、字体、前景和背景颜色、填充图案以及边框。
  
  另外,Spreadsheet::WriteExcel可以改变字体,文字变形和旋转文字,插入位图,设置密码保护工作表,以及建立能用鼠标扩展的数据集合。当然还能够设置打印选项和页面暂停的功能。
  
  该模块还可以写标准输出数据,因此它可以在cgi-bin程序中使用。其他程序语言可以通过HTTP URL参照cgi-bin,来请求Excel电子数据表格电子数据表格。
  
  下面是一个例子,它用DBI从EMP表中提取数据并用公式和格式化生成一个Excel电子数据表格电子数据表格。
  
  use DBI;
  use Spreadsheet::WriteExcel;
  
  # connect to the local database
  my $dbh = DBI->connect('dbi:Oracle:','scott','tiger') die $DBI::errstr;
  
  print "Generating Excel Spreadsheet\n";
  my $workbook = new Spreadsheet::WriteExcel "emp.xls";
  my $worksheet = $workbook->add_worksheet();
  my $fmt = {
    HEADER => $workbook->add_format(bold=>1,align=>'center',
      bottom=>2,bg_color=>'silver'),
    ENAME => $workbook->add_format(bold=>1,color=>'blue'),
    MONEY => $workbook->add_format(
      num_format=>'$#,##0.00',align=>'right'),
    TOTAL => $workbook->add_format(
      num_format=>'$#,##0.00',align=>'right',bold=>1,
      top=>2),
  };
  
  print "Querying Employees\n";
  my $sth = $dbh->prepare('select * from emp') die $DBI::errstr;
  my $rc = $sth->execute;
  my $r = 1;
  $worksheet->write($r-1,0,'Employee',$fmt->{HEADER});
  $worksheet->write($r-1,1,'Salary',$fmt->{HEADER});
  $worksheet->write($r-1,2,'Commission',$fmt->{HEADER});
  $worksheet->write($r-1,3,'Total',$fmt->{HEADER});
  $r++;
  while (my $row = $sth->fetchrow_hashref)
  {
    $worksheet->write($r-1,0,$row->{ENAME},$fmt->{ENAME});
    $worksheet->write($r-1,1,$row->{SAL},$fmt->{MONEY});
    $worksheet->write($r-1,2,$row->{COMM},$fmt->{MONEY});
    $worksheet->write($r-1,3,"=B$r+C$r",$fmt->{MONEY});
    $r++;
  }
  $worksheet->write($r-1,0,'',$fmt->{TOTAL});

  $worksheet->write($r-1,1,'=SUM(B2:B'.($r-1).')',$fmt->{TOTAL});
  $worksheet->write($r-1,2,'=SUM(C2:C'.($r-1).')',$fmt->{TOTAL});
  $worksheet->write($r-1,3,"=B$r+C$r",$fmt->{TOTAL});
  print "Processed " . ($r-2) ." rows\n";
  $sth->finish;
上一篇:美国医疗机构的下一个目标:无纸化作业 人气:492
下一篇:ORACLE常用傻瓜问题1000问全集(十) 人气:514
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-10 企业网站智能管理系统(TZIMS) v6
2008-10-10 拓文asp.net网站内容管理系统 v6
2008-10-10 动网论坛PHP版 v2.0++ Build 081
2008-10-10 免费时代CMS v5.0
2008-10-10 wodig第四季中文DIGG社区 v4.1 b
2008-10-10 老Y文章管理系统 v2.2 bulid 081
2008-10-10 魔法盒动感相册 ASP+SQL版 v2.0
2008-10-10 Asoft签到管理系统 v3.0 Pack1
2008-10-10 哥特人音乐网潮流留言本 v1.1
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号