如何用javascript操作本地文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用javascript操作本地文件相关的知识,希望对你有一定的参考价值。
如果要使用javascript操作本地文件,针对于现在的浏览器来说只有IE可以有权限直接操作文件,其他浏览器是不能实现的下面是操作文件的例子,你试试看:
<script type="text/javascript">
/**
*CreateFile: 测试在电脑上创建一个文件件,并在文件夹里写进一些数据。
*
*/
function CreateFile()
var fso, tf;
fso = new ActiveXObject("Scripting.FileSystemObject");//获取对象
tf = fso.CreateTextFile("c:\\testfile.txt", true);//创建一个文件夹
// 写一行,并且带有新行字符。
tf.WriteLine("Testing 1, 2, 3.") ;
// 向文件写三个新行字符。
tf.WriteBlankLines(3) ;
// 写一行。
tf.Write ("This is a test.");
tf.Close();//关闭
/**
*Folder的API:
*任务 方法
*创建文件夹。 FileSystemObject.CreateFolder
*删除文件夹。 Folder.Delete 或 FileSystemObject.DeleteFolder
*移动文件夹。 Folder.Move 或 FileSystemObject.MoveFolder
*复制文件夹。 Folder.Copy 或 FileSystemObject.CopyFolder
*检索文件夹的名字。 Folder.Name
*如果文件夹在驱动器上存在,则找出它。 FileSystemObject.FolderExists
*获得现有 Folder 对象的实例。 FileSystemObject.GetFolder
*找出文件夹的父文件夹名。 FileSystemObject.GetParentFolderName
*找出系统文件夹的路径。 FileSystemObject.GetSpecialFolder
*/
function ManipFiles()
var fso, f1, f2, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\testfile.txt", true); //如果当前文件已经存在的话,则覆盖原有文件
alert("Writing file <br>");
// 写一行。
f1.Write("This is a test.");
// 关闭文件。
f1.Close();
alert("Moving file to c:\\tmp <br>");
if(!fso.FolderExists("c:\\tmp")) //如果tmp目录不存在,则创建一个目录
fso.CreateFolder("c:\\tmp");
// 获取 C 的根目录(C:\)中的文件的句柄。
f2 = fso.GetFile("c:\\testfile.txt");
// 把文件移动到 \tmp 目录。如果这个tmp目录下已经有testfile.txt文件了,则会出错。(如果没有tmp这个文件目录也会出错)
f2.Move ("c:\\tmp\\testfile.txt");
alert("Copying file to c:\\temp <br>");
// 把文件复制到 \temp 目录
if(!fso.FolderExists("c:\\temp")) //如果temp目录不存在,则创建一个目录
fso.CreateFolder("c:\\temp");
f2.Copy ("c:\\temp\\testfile.txt");
alert("Deleting files <br>");
// 获得文件当前位置的句柄。
f2 = fso.GetFile("c:\\tmp\\testfile.txt");
f3 = fso.GetFile("c:\\temp\\testfile.txt");
// 删除文件。
f2.Delete();
f3.Delete();
//删除文件夹
// www.jquerycn.cn
var fdTmp = fso.GetFolder("c:\\tmp");
var fdTemp = fso.GetFolder("c:\\temp");
fdTmp.DeleteFolder();
fdTemp.DeleteFolder();
alert("All done!");
ManipFiles();
//CreateFile();
alert("Ok! Write Over!");
</script> 参考技术A javascript是资源安全型语言,也就是说,它不支持操作本地文件。本回答被提问者采纳 参考技术B
1.先上代码:
//读文件var fso, f1, ts;
var ForReading = 1;
fso = new ActiveXObject("Scripting.FileSystemObject");
ts = fso.OpenTextFile(document.all.attachFile.value/*此处为含全部路径的文件名*/, ForReading);
document.all.mailbdy.value=ts.ReadAll();
ts.Close();
//写文件
var title = document.getElementById("title").value;//文件名
var fso=new ActiveXObject("Scripting.FileSystemObject");
var f=fso.CreateTextFile("C://"+title+".nc",true); //可随意选择后缀名
f.write(document.getElementById("babala").value);
f.Close();
很简单吧,这就是基本过程,从文件中读取到数据以后就可以进行相关操作了。
2.由于安全性原因ActiveXObject对象在firefox中无法使用。因此想要在firefox中完成类似的功能就需要采取别的方法 了。
3.选择输入文件。可以使用<input type="file" name="attachFile"> 来获取包含路径的文件名。
4.我使用了<textarea>来进行文件的显示和修改。在保存的时候。也可以使用window的saveAs命令。不过在保存窗口 内容的时候,因为存在/n和<br />的转换问题,因此在保存文件时可能会导致格式错误。不过用ActiveXObject保存内容可以不用考虑该问题。
5.javascript的字符串类提供的方法可以很方便的编写字符串处理程序。另外在处理字符到数字的转换时,可以使用praseInt() 和parseFloat()方法。
请教如何用JQuery导入导出excel表格
可以用javascript的文件相关的函数,我忘记具体怎么做了(曾经做过,不难。),只有大体思路。javascript(网页)操作本地文件是要有个许可的,一般在浏览器的安全选项卡里面要设置一下。用生成一个对象,这个对象关联到excel对象(要求客户端必须装excel)。然后写excel表格的单元格等等。到网上搜索一下javascript操作excel就会有的。 参考技术A //必须用ie浏览器,必须安装excel,必须是windwos系统var filename = "文件全路径"
var oXL = new ActiveXObject("Excel.Application");
try
var oWB = oXL.Workbooks.open(filename);
catch(e)
alert('打开文件失败!');
var oSheet = oWB.ActiveSheet;
var nRows=oSheet.usedrange.rows.count;
var nColumns =oSheet.usedrange.columns.count;
//alert("行"+nRows+ " 列" + nColumns);
//第一行为表头
for(var i=2;i<=nRows;i++)
for(var j=1;j<=nColumns;j++)
var text = oSheet.Cells(i,j).value;
alert(text);//第i行,第j列单元格内容
oSheet=null;
oWB.close();
oXL.Application.Quit();
oXL = null;
CollectGarbage();
以上是关于如何用javascript操作本地文件的主要内容,如果未能解决你的问题,请参考以下文章