实现导出文件的通常做法是在后台生成好文件后, 将url重定向到已生成的文件或使用异步方法返回文件url在前台使用i-f-r-a-m-e打开, 这样就能直接下载. 之后根据客户端的设置, 是下载还是直接调用关联程序打开文档. 以xls文件为例, 客户端已安装office, 大多数浏览器是会直接代开该文件的, 可以在excel中另存到任意路径. 不过这些就不是js所能控制的了.
后台代码实现方面, 直接在网站目录下生成文件当然方便, 但是存在安全方面的问题, 因为静态url无法控制访问权限. 最好是将文件生成在网站文件系统意外的独立区域存储, 将下载事务包装成动态页面, 读取文件使用b-i-n-a-r-y方式写入r-e-s-p-o-n-s-e(注意根据文件类型正确写入c-o-n-t-e-n-t Type, 这样浏览器才能正确识别为文件下载). 这样做的好处显而易见, 不管是安全方面还是其他逻辑都可自由扩展.
尼玛, 好多禁用的词汇, 回答js相关的问题各种河蟹
JS读写文件,分别如下://读文件
function readFile(filename){
var fso = new ActiveXObject("Scripting.FileSystemObject")
var f = fso.OpenTextFile(filename,1)
var s = ""
while (!f.AtEndOfStream)
s += f.ReadLine()+"\n"
f.Close()
return s
}
//读文件
function readFile(filename){
var fso = new ActiveXObject("Scripting.FileSystemObject")
var f = fso.OpenTextFile(filename,1)
var s = ""
while (!f.AtEndOfStream)
s += f.ReadLine()+"\n"
f.Close()
return s
}
//写文件
function writeFile(filename,filecontent){
var fso, f, s
fso = new ActiveXObject("Scripting.FileSystemObject")
f = fso.OpenTextFile(filename,8,true)
f.WriteLine(filecontent)
f.Close()
alert('ok')
}
简单的办法:使用js生成一个table,可以直接复制到excel中,网上有很多表格插件。
复杂的办法:js传递数据到服务器,服务器生成表格后返回一个下载链接。
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
在1995年时,由Netscape公司的BrendanEich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。
为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。
MicrosoftExcel是微软公司的办公软件Microsoftoffice的组件之一,是由Microsoft为Windows和AppleMacintosh操作系统的电脑而编写和运行的一款试算表软件。Excel是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理、统计分析和辅助决策操作,广泛地应用于管理、统计财经、金融等众多领域。