Submitted by gouki on 2009, January 14, 10:22 PM
IIS团队刚刚发表了IIS7在Window Server 2008 R2 beta中的新改进.Windows Server 2008 R2包括对IIS7 Web服务器的增补,对已经是史上最好的IIS平台进行修正、完善、添加。 今天在Windows Server 2008 R2 Beta中IIS7改进的主要亮点:
内容发布扩展(FTP, WebDav)集成进Web服务器OS/集成Administration Pack扩展到Windows Server OS
新的IIS7 PowerShell Provider和Commandlet支持/丰富的Server Core应用程序托管
改进的FastCGI支持/IIS核心更改/IIS Best Practice Analyzer
过去的一年半中,IIS产品团队在IIS7平台上辛勤编写扩展,发布了beta、TC和RTW们来新增对优化媒体托管、Web内容发布、站点和服务器管理、部署和迁移、请求处理的支持。 没有我们在Windows Server 2008上IIS7中引入的架构变更,我们根本无法在12~18个月中进行创新,并构建面向生产环境、完全受支持的微软软件。现在在Windows Server 2008 R2, 我们对这个IIS7平台再做了一些改进、修正和完善。
今天在Windows Server 2008 R2 Beta中IIS7改进的主要亮点:
内容发布扩展(FTP, WebDav)集成进Web服务器OS
继承内容发布扩展 (FTP, WebDav)进Windows Server OS
在Windows Server 2008发布前很久,我们就开始研发完全重写的FTP服务器和我们的WebDav实现。08年早些时候,我们发布了Windows Server 2008 FTP发布服务下载,具有FTPS安全内容发布、IPv6支持、IIS管理器集成管理FTP/HTTP站点、更强大的日志和认证支持的特性。跟我们所有的扩展一样,Windows Server 2008 FTP发布服务受到微软产品支持的完全支持及由专家用户和产品团队提供的论坛支持。我们在Windows Server 2008 R2中已经做到的是将FTP发布服务集成到服务器操作系统。
从客户角度,这意味着:
当Windows Server 2008上已经安装了FTP发布服务,你必须在安装新FTP服务前移除旧版。在R2中,你可以作为IIS组件的一部分来安装新的FTP服务器,IIS setup会替换升级旧的FTP服务。
你可以得到FTP发布服务自2008年2月发布后的bug修复。
你可以使用新增的认证、日志、授权和home目录扩展性,这些在MSDN上会有文档。
我们也会在2009年5月发布一个更新过的Windows Server 2008 FTP发布服务下载,所以这部分客户也能利用这些bug修复和扩展性。或者说:
(2009年5月版FTP下载 + Windows Server 2008) == (Windows Server 2008 R2中的FTP特性)
但有如下例外:
Windows Server 2008 FTP发布服务始终是一个下载安装,而Windows Server 20008 R2和以后会集成FTP。
2008年7月发布的WebDav也是一样。WebDav for Windows Server 2008提 供了HTTP协议WebDAV扩展的全新实现(直至spec)。我们在Windows Server 2008 R2安装中包含了WebDav。WebDav大的新特性是支持locks。我们也会为Windows Server 2008发布一个支持lock的WebDav,同样是2009年5月。同样地:
(2009年5月版WebDav下载 + Windows Server 2008) == (Windows Server 2008 R2中的WebDav特性)
如下例外:
WebDav for Windows Server 2008 始终是一个下载安装,而Windows Server 20008 R2和以后会集成WebDav。
集成Administration Pack扩展到Windows Server OS
我们把IIS7 Administration Pack集成到Windows Server 2008 R2,为客户提供:
在IIS Manager中集成管理ASP.NET authorization,自定义错误,FastCGI,和and Request Filtering。
配置管理器,提供管理IIS7配置系统的可视化编辑器。如果你想试用一下,我们的IIS开发经理Carlos Aguilar Mares撰写了comprehensive blog on the Config Editor's capabilities一文。我最爱的配置管理器部分是脚本生成功能——对做演示非常管用:)
我们并未将IIS Reports特性集成进Windows Server OS,如果你需要这个功能,你可以在IIS Administration Pack下载中得到。同样的,我们也会为Windows Server 2008用户提供更新的IIS Administration Pack,包括Windows Server 2008 R2种所有的修复和变更(除了集成安装)。
Windows Server 2008版的Administration Pack会和Windows Server 2008 R2一起发布,以确保功能和Windows Server 2008 R2一致。
新的IIS7 PowerShell Provider和Commandlet支持
IIS PowerShell provider,同样有Windows Server 2008版下载,允许用户使用PowerShell编程环境管理IIS,ASP.NET和自定义错误配置。是的,传说是真的——我们有为PowerShell用户们提供IIS:/>。我们的PowerShell支持提供了3个等级的支持:
PowerShell provider: 如果你熟悉IIS配置系统,想直接用PS编程环境来管理配置。
Low-level commandlets: 用我们的low-level commandlets集合来管理每个IIS设置,如果你需要这个程度的细粒度控制。
Task-oriented commandlets: 用我们的面向任务commandlets来管理网站(例如:New-WebSite创建一个站点),备份和恢复web服务器配置及其他常见任务。
集成到Windows Server 2008 R2中,你可以使用Windows Server setup来安装PowerShell provider和60+个commandlets。
和FTP、WebDav一样:
(2009年5月版PowerShell下载 + Windows Server 2008) == (Windows Server 2008 R2中的PowerShell特性)
例外是:
PowerShell for Windows Server 2008 始终是一个下载安装,而Windows Server 20008 R2和以后会集成PowerShell 。
更多的PowerShell支持信息,可以查看Group Program Manager和PowerShell大牛Thomas Deml的博客(http://blogs.iis.net/thomad)。
丰富的Server Core应用程序托管
Windows Server 2008 R2上,你可以在Server Core的IIS上跑ASP.NET应用。ASP.NET/CLR做了一些重构工作来确保ASP.NET网页的托管代码环境可以在Server Core上运行。哇!我们不仅能在Server Core上支持图片、媒体、PHP、传统ASP网页,也能跑ASP.NET应用。
Windows Server 2008 R2中的PowerShell 2.0版本处理远程管理,对Server Core安装和新的PowerShell provider很便利。你不仅能在Server Core IIS上托管你的所有应用,本地或远程通过新的IIS PowerShell Provider和commandlets来管理它们也更容易了。在Windows PowerShell blog上有PowerShell大法供参考。
改进的FastCGI支持
IIS7通过我们的FastCGI实现来支持PHP托管,我们在Windows Server 2008 R2 IIS7中持续翻新和提高FastCGI。增强的支持包括:
支持在IIS Manager中管理FastCGI设置。
当php.ini变化时自动刷新php-cgi.exe。这个版本中,IIS为每个进程池监视一个文件,如果文件被修改就会recycle这个进程池的FastCGI进程。此特性默认关闭,如果你(通过用户界面的一个设置)打开它,你可以指定监视的文件路径。
FastCGI的FREB支持,你可以更有效的排错PHP和其他FastCGI相容应用。
MaxInstance可以是动态——如果maxInstance设置为0,IIS自动监测系统负载并调整maxInstances。这允许我们优化PHP的性能。
基于特定错误的控制FastCGI错误行为的支持。
IIS核心更改
基于客户反馈和我们自己在IIS7平台开发扩展的体验,我们也对IIS7平台核心做了一些修改:
支持配置系统的自定义追踪。
通过配置轮询来审核或追踪配置变更的能力——这是来自托管商们的要求,特别是想要监视客户们更改配置系统。
ASP.NET支持不同的CLR版本(例如,CLR4.0),随着多个CLR版本的使用,这个特性对开发者切换版本很重要。我们也将此功能向后移植到Windows Server 2008 SP2。
Application pools的更好控制,可以为每应用程序池指定CLR设置,可以用新的Application Pool性能计数器监视性能。
可委派自定义错误,这是来自开发者的最多要求,他们想让非管理员在本地或远程改变自定义错误。
IP restriction list的IPv6支持。
Request filtering的更细粒度控制,特别对query strings来帮助防止SQL注入式攻击。Request filtering现在也支持请求特定的规则,使SQL注入规则仅对特定请求适用。
Nego2支持,将允许内置支持LiveID providers,FedSSP,和更小粒的Kerberos/NTLM使能。
支持不要求密码的Managed Service Accounts域账号。
AppPool identity支持——这个太复杂了,以后单独帖子会另行讲。
支持application pool预热,大型应用程序会需要"起动"一个应用程序池,这样最初的请求们会有更好的性能。
IIS Best Practice Analyzer
Windows Server 2008 R2在Server Manager里引入了一个新特性叫做Best Practice Analyzer。 BPA在Server Manager里提供单一控制台体验来管理跨不同服务器角色的配置的最优实践规则,如Exchange、AD和IIS。在Server Manager里,你可以对一些IIS规则运行BPA针对安全和性能的最优实践——例如,检查确认基本验证不会没有加SSL就启用。针对IIS的BPA规 则并不是巨细无遗,但它确实给予一组良好的核心提示作为起步。我们也会通过Server Manager来更新和增加这些规则。注意这个功能在Server Manager中,不在IIS Manager中。
当然,我们也修复了bugs。
你的反馈帮助了我们修炼IIS7,至今最好的Web服务器平台。今天你可以在这里下载Windows Server 2008 R2 beta,这不失为开始2009年的好办法!
译自:IISBlog
原文来自:http://www.cnbeta.com/articles/74751.htm
Tags: iis, windows, server, changelog
Software | 评论:0
| 阅读:19515
Submitted by gouki on 2009, January 14, 11:25 AM
根据官方的博客,说是1月14日前发布release前最后一个版本了。不知道什么时候有的下载和测试,不过仍然是不建议用在项目中,还是等稳定版吧。
那个常见的@终于要消失了。新的引擎效率应该快上很多吧。
关注官方:www.jquery.com
Tags: jquery, beta, release
Javascript | 评论:0
| 阅读:17648
Submitted by gouki on 2009, January 13, 1:38 PM
一直以来delphi的手册就是开发人员的最爱,也被认为是最全最强大的。但最近几年,MS在MSDN上的投入是越来越多,也让MSDN成为了最全最强大的在线手册了。
不过,delphi并没有放弃大家,于是:
-------------------------
BlackfishSQL 帮助
Tags: delphi, codegear, manual, chm
Software | 评论:0
| 阅读:19838
Submitted by gouki on 2009, January 13, 1:35 PM
文章来自:cnbeta.com
原文链接:http://www.cnbeta.com/articles/74701.htm
新闻来源:岁月如歌
JavaScript游戏一段时间内将还只是开发者们的“玩物”,要真正转换为商业应用,可能还有一段漫长的路要走。但是,当Super Mario跳跃在Web网页上时,这昭示着JavaScript的时代已经到来了。JavaScript能做什么?2008年的答案是:JavaScript连游戏都能做!
乔布斯说:“活着就是为了改变世界,难道还有其它原因吗?” 2008年,在Web前端开发界,无论国外还是国内,都发生了不少事情,有哪些是改变世界或即将改变世界的大事件呢?
JavaScript游戏
2008年4月9日,Dion Almaer发现了一款非常经典的JavaScript游戏:Super Mario. 这款游戏由Jacob Seidelin开发,大小仅14k.
(Super Mario JavaScript版本: http://jsmario.com.ar/)
不少Web开发者们大跌眼镜:这真的是用JavaScript开发出来的?答案是肯定的。这款游戏利用了Canvas元素(IE中用HTML模拟),图像 存储在加密的字符串中,还用base64存储了MIDI背景音乐。除了这些技巧,其它代码就是我们熟悉的HTML、CSS和JavaScript.
Super Mario JavaScript版本的横空出世(之前也出现过用JavaScript写的游戏,但没有像Super Mario一样引起大家的关注),激起了一股用JavaScript编写游戏的热潮:
许多经典的游戏都有了JavaScript版本:Pac-Man(经典的吃豆子游戏), Space Invaders(太空入侵者),Spacius(百玩不厌的雷电)等等。
甚至还出现了一些比较复杂的角色扮演游戏:Andrew Wooldridge创造的Tombs of Asciiroth 和 CanvasQuest,Pierre Chassaing创造的ProtoRPG等。
伴随JavaScript游戏的热潮,还出现了不少专门用于游戏开发的JavaScript库。最突出的是GameJS(基于Canvas的一个2D游戏开发库) 和 GameQuery(这是jQuery的一个插件)。
除了用Canvas构建2D游戏,用JavaScript还可以构建3D游戏,还出现了非常出色的Processing.js,以及JavaScript PlotTool绘图工具等等。
感慨:JavaScript游戏一段时间内将还只是开发者们的“玩物”,要真正转换为商业应用,可能还有一段漫长的路要走。但是,当Super Mario跳跃在Web网页上时,这昭示着JavaScript的时代已经到来了。JavaScript能做什么?2008年的答案是:JavaScript连游戏都能做!
大放异彩的jQuery
2008年,无论对于jQuery的作者John Resig还是jQuery库本身来说,都是非常棒的一年。jQuery首页上有一行很明显的加粗文字:
jQuery is designed to change the way that you write JavaScript.
jQuery设计成可以改变你书写JavaScript的方式。
jQuery用数据和事实证明了它的魅力。一定程度上,甚至可以毫不夸张地说:jQuery改变了Web前端开发界。下面是用Google Trends统计的常用JavaScript库在2008年的搜索量曲线图:
2008年9月份,jQuery团队战绩斐然:Microsoft和Nokia正式将jQuery集成进他们的应用程序开发平台。此外,Google的部 分应用里,也早就采纳了jQuery. 从jQuery的首页上还可以看出,DELL, Bank of America, Digg, Technorati, Mozzila等站点都在使用jQuery.
当然,除了jQuery,其它JavaScript在2008年也都有可圈可点的发展。YUI3的Preview版本,是我见过的最具有发展潜力的框架。 ExtJS在国内的普及也非常迅猛,JavaEye社区里,ExtJS一定程度上成了Ajax的代名词,各种有关ExtJS的技术文章和书籍非常多(遗憾 的是书籍的质量不高)。Prototype不温不火。Mootools则在低调中用其优雅的代码吸引了不少忠实用户。
感慨:上面提到的每个JavaScript库都是非常优秀的,掌握任何一个,对于我们的日常工作来说,都绰绰有余了。 只是对于2008年来说,jQuery的表现太突出了,连我这个天天工作用YUI的人,在2008年,都不得不为jQuery鼓掌,为John Resig喝彩!各种JavaScript库的争奇斗艳,这是JavaScript时代已经到来的另一个标志。
蹒跚起步的网页工业化
2008年,如果你是一名Web前端开发工程师,却没有听说过“栅格”两个字,那你一定是工作太忙太专心了。2008年10月份,在淘宝UED博客,出现了一篇“
960的秘密”,揭开了网页栅格系统在国内的研究小热潮。
伴随着栅格系统的争论,国内的前端技术博客里还出现不少对CSS框架和布局的探讨。这一切,所要解决的是以下两个问题:
- 网页的规范性。随着站点的成长,页面会以几何级数的速度增加。面对成千上万个网页,如何保持风格的一致性是一个不小的挑战。
- 网页的工业化产出。在遵守规范和保证质量的基础上,如何让页面制作容易,如何让运营人员能批量制造页面,这是目前许多大型站点面临的另一个问题。
国内站点中,淘宝、百度有啊、网易等站点的已逐步采用栅格系统。淘宝的首页和频道目前已经全部栅格化,同时尝试性开发了TMS(模板管理系统)来解决网页的工业化产出问题。
感慨:网页的高质量工业化产出,在国内很多公司才刚起步。2009年,我相信工业化将依旧是Web前端开发界的关键词。
这些也很出色
- 渐进增强。2008年10月份,Aaron Gustafson在ALA网站上发表了一系列有关渐进增强的文章,探讨的核心问题是:JavaScript应该做什么以及Web前端开发的技术流程。 JavaScript游戏让我们看到了JavaScript的魔力,Aaron提醒我们不能滥用JavaScript,我们要仔细考虑 JavaScript的使用场景。可用性,无侵入性,可访问性等等,这些理念是每一个前端开发工程师需要好好思考的。
- D2(前端技术论坛)。 2008年,在北京和上海分别举办了两届D2,这是国内前端开发工程师们的两场盛会。前端工程师,这个新生的职位逐步被国内各大公司接受。D2的意义在于,我们聚集在一起,发出了自己的声音!
- Google Chrome的诞生。 2008年,Chrome, JS V8引擎,Google迫使各大浏览器厂商开始比拼JavaScript引擎速度,这是JavaScript时代已经到来的另一个标志。Google和 Mozzila的努力,在年末的时候带来鼓舞人心的统计结果:IE的使用率跌破70%. 万恶的IE6,早点灭亡吧。2009年,Google的号角和淘宝网即将掀起的 NO IE6 活动,将加速IE6的灭亡。
最后,用两句话来结束本文:
2008年,我们努力改变世界!
2009年,我们继续改变世界,同时世界将开始为我们而改变!
Tags: web, development, change
Misc | 评论:0
| 阅读:18825
Submitted by gouki on 2009, January 12, 12:26 PM
原作者:冰山上的播客
看到这篇文章的时候,很是惊讶原作者的耐心,虽然我们在平时用的也有一些,但没有作者列出来的全,写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了。呵呵。(COM方式不讲了,这种可读的太多了,我也写过利用wps等进行word等的生成之类的文章 )
但是在读的时候,只用过一种,具体是什么忘了,要回去翻代码了。因为采用的是拿来主义,记不住。
原文地址:http://xinsync.xju.edu.cn/index.php/archives/3858
原文内容:
最近因项目需要,需要开发一个模块,把系统中的一些数据导出成Excel,修改后再导回系统。就趁机对这个研究了一番,下面进行一些总结。
基本上导出的文件分为两种:
1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已。修改这种文件后再保存,通常会提示你是否要转换成Excel文件。
优点:简单。
缺点:难以生成格式,如果用来导入需要自己分别编写相应的程序。
2:Excel格式,与类Excel相对应,这种方法生成的文件更接近于真正的Excel格式。
如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把$yourStr从utf-8转换成了gb2312:
$yourStr = mb_convert_encoding(”gb2312″, “UTF-8″, $yourStr);
【有网友指出上面的转换是错误的,确实,上面的参数顺序是iconv函数的,$yourStr应该是第一个参数。】
下面详细列举几种方法。
一、PHP导出Excel
1:第一推荐无比风骚的PHPExcel,官方网站: http://www.codeplex.com/PHPExcel
导入导出都成,可以导出office2007格式,同时兼容2003。
下载下来的包中有文档和例子,大家可以自行研究。
抄段例子出来:
PHP代码
- <?php
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- error_reporting(E_ALL);
-
-
- set_include_path(get_include_path() . PATH_SEPARATOR . ‘../Classes/’);
-
-
- include ‘PHPExcel.php’;
-
-
- include ‘PHPExcel/Writer/Excel2007.php’;
-
-
- echo date(’H:i:s’) . ” Create new PHPExcel object\n”;
- $objPHPExcel = new PHPExcel();
-
-
- echo date(’H:i:s’) . ” Set properties\n”;
- $objPHPExcel->getProperties()->setCreator(”Maarten Balliauw”);
- $objPHPExcel->getProperties()->setLastModifiedBy(”Maarten Balliauw”);
- $objPHPExcel->getProperties()->setTitle(”Office 2007 XLSX Test Document”);
- $objPHPExcel->getProperties()->setSubject(”Office 2007 XLSX Test Document”);
- $objPHPExcel->getProperties()->setDescrīption(”Test document for Office 2007 XLSX, generated using PHP classes.”);
- $objPHPExcel->getProperties()->setKeywords(”office 2007 openxml php”);
- $objPHPExcel->getProperties()->setCategory(”Test result file”);
-
-
- echo date(’H:i:s’) . ” Add some data\n”;
- $objPHPExcel->setActiveSheetIndex(0);
- $objPHPExcel->getActiveSheet()->setCellValue(’A1′, ‘Hello’);
- $objPHPExcel->getActiveSheet()->setCellValue(’B2′, ‘world!’);
- $objPHPExcel->getActiveSheet()->setCellValue(’C1′, ‘Hello’);
- $objPHPExcel->getActiveSheet()->setCellValue(’D2′, ‘world!’);
-
-
- echo date(’H:i:s’) . ” Rename sheet\n”;
- $objPHPExcel->getActiveSheet()->setTitle(’Simple’);
-
-
- $objPHPExcel->setActiveSheetIndex(0);
-
-
- echo date(’H:i:s’) . ” Write to Excel2007 format\n”;
- $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
- $objWriter->save(str_replace(’.php’, ‘.xlsx’, __FILE__));
-
-
- echo date(’H:i:s’) . ” Done writing file.”;
2、使用pear的Spreadsheet_Excel_Writer类
下载地址: http://pear.php.net/package/Spreadsheet_Excel_Writer
此类依赖于OLE,下载地址:http://pear.php.net/package/OLE
需要注意的是导出的Excel文件格式比较老,修改后保存会提示是否转换成更新的格式。
不过可以设定格式,很强大。
PHP代码
- <?php
- require_once ‘Spreadsheet/Excel/Writer.php’;
-
-
- $workbook = new Spreadsheet_Excel_Writer();
-
-
- $workbook->send(’test.xls’);
-
-
- $worksheet =& $workbook->addWorksheet(’My first worksheet’);
-
-
- $worksheet->write(0, 0, ‘Name’);
- $worksheet->write(0, 1, ‘Age’);
- $worksheet->write(1, 0, ‘John Smith’);
- $worksheet->write(1, 1, 30);
- $worksheet->write(2, 0, ‘Johann Schmidt’);
- $worksheet->write(2, 1, 31);
- $worksheet->write(3, 0, ‘Juan Herrera’);
- $worksheet->write(3, 1, 32);
-
-
- $workbook->close();
- ?>
3:利用smarty,生成符合Excel规范的XML或HTML文件
支持格式,非常完美的导出方案。不过导出来的的本质上还是XML文件,如果用来导入就需要另外处理了。
详细内容请见rardge大侠的帖子:http://bbs.chinaunix.net/viewthread.php?tid=745757
需要注意的是如果导出的表格行数不确定时,最好在模板中把”ss:ExpandedColumnCount=”5″ ss:ExpandedRowCount=”21″”之类的东西删掉。
4、利用pack函数打印出模拟Excel格式的断句符号,这种更接近于Excel标准格式,用office2003修改后保存,还不会弹出提示,推荐用这种方法。
缺点是无格式。
PHP代码
- <?php
-
- header(”Pragma: public”);
- header(”Expires: 0″);
- header(”Cache-Control: must-revalidate, post-check=0, pre-check=0″);
- header(”Content-Type: application/force-download”);
- header(”Content-Type: application/octet-stream”);
- header(”Content-Type: application/download”);;
- header(”Content-Disposition: attachment;filename=test.xls “);
- header(”Content-Transfer-Encoding: binary “);
-
-
- xlsBOF();
- xlsWriteLabel(1,0,”My excel line one”);
- xlsWriteLabel(2,0,”My excel line two : “);
- xlsWriteLabel(2,1,”Hello everybody”);
-
- xlsEOF();
-
- function xlsBOF() {
- echo pack(”ssssss”, 0×809, 0×8, 0×0, 0×10, 0×0, 0×0);
- return;
- }
- function xlsEOF() {
- echo pack(”ss”, 0×0A, 0×00);
- return;
- }
- function xlsWriteNumber($Row, $Col, $Value) {
- echo pack(”sssss”, 0×203, 14, $Row, $Col, 0×0);
- echo pack(”d”, $Value);
- return;
- }
- function xlsWriteLabel($Row, $Col, $Value ) {
- $L = strlen($Value);
- echo pack(”ssssss”, 0×204, 8 + $L, $Row, $Col, 0×0, $L);
- echo $Value;
- return;
- }
- ?>
- 不过笔者在64位linux系统中使用时失败了,断句符号全部变成了乱码。
-
- 5、使用制表符、换行符的方法
- 制表符”\t”用户分割同一行中的列,换行符”\t\n”可以开启下一行。
- <?php
- header(”Content-Type: application/vnd.ms-execl”);
- header(”Content-Disposition: attachment; filename=myExcel.xls”);
- header(”Pragma: no-cache”);
- header(”Expires: 0″);
-
- echo “hello”.”\t”;
- echo “world”.”\t”;
- echo “\t\n”;
-
-
- echo “this is second line”.”\t”;
- echo “Hi,pretty girl”.”\t”;
- echo “\t\n”;
- ?>
6、使用com
如果你的PHP可以开启com模块,就可以用它来导出Excel文件
PHP代码
- <?PHP
- $filename = “c:/spreadhseet/test.xls”;
- $sheet1 = 1;
- $sheet2 = “sheet2″;
- $excel_app = new COM(”Excel.application”) or Die (”Did not connect”);
- print “Application name: {$excel_app->Application->value}\n” ;
- print “Loaded version: {$excel_app->Application->version}\n”;
- $Workbook = $excel_app->Workbooks->Open(”$filename”) or Die(”Did not open $filename $Workbook”);
- $Worksheet = $Workbook->Worksheets($sheet1);
- $Worksheet->activate;
- $excel_cell = $Worksheet->Range(”C4″);
- $excel_cell->activate;
- $excel_result = $excel_cell->value;
- print “$excel_result\n”;
- $Worksheet = $Workbook->Worksheets($sheet2);
- $Worksheet->activate;
- $excel_cell = $Worksheet->Range(”C4″);
- $excel_cell->activate;
- $excel_result = $excel_cell->value;
- print “$excel_result\n”;
- #To close all instances of excel:
- $Workbook->Close;
- unset($Worksheet);
- unset($Workbook);
- $excel_app->Workbooks->Close();
- $excel_app->Quit();
- unset($excel_app);
- ?>
一个更好的例子: http://blog.chinaunix.net/u/16928/showart_387171.html
一、PHP导入Excel
1:还是用PHPExcel,官方网站: http://www.codeplex.com/PHPExcel。
2:使用PHP-ExcelReader,下载地址: http://sourceforge.net/projects/phpexcelreader
举例:
PHP代码
- <?php
- require_once ‘Excel/reader.php’;
-
-
- $data = new Spreadsheet_Excel_Reader();
-
-
- $data->setOutputEncoding(’utf8′);
-
- $data->read(’ jxlrwtest.xls’);
-
- error_reporting(E_ALL ^ E_NOTICE);
-
- for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
- for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
- echo “\”".$data->sheets[0]['cells'][$i][$j].”\”,”;
- }
- echo “\n”;
- }
-
- ?>
Tags: php, excel, 转摘
PHP | 评论:3
| 阅读:46093