用ASP实现输入文本,生成TXT文件

在文本框输入字、然后点击按钮 生成一个txt文档 内容就是输入框里面的文字
TXT文档会生成在网页跟目录。要如何做呢?在线求答案。

看过网上很多创建word文件的办法,大都会要求客户段浏览器设置安全性,有很大的局限性。

经过本人摸索,找到一条目前本人认为最简易的办法,不敢独享,请朋友们点评。

1 利用word生成相应的word文件,如固定格式的表格等,然后用“另存为”功能存成htm格式。

2 使用记事本等打开,可看见html源码。

3 将代码开始处的以下内容:
<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="";>
<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 11">
<meta name=Originator content="Microsoft Word 11">

改为基本html代码:

<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">

4 在页面最开始处添加以下语句:
<% Response.ContentType = "application/msword"
response.AddHeader "content-disposition", "inline; filename=测试.doc"

' 此处可添加变量处理等语句,如打开数据库获取记录集等。
'
%>

5 在html代码中找到表格中相应位置填入asp变量或数据库字段值。如以下代码代表一个单元格:
<td width=114 valign=top style='width:85.2pt;border:solid windowtext 1.0pt;
border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:
solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
</td>
可修改为:
<td width=114 valign=top style='width:85.2pt;border:solid windowtext 1.0pt;
border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt:
solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p> <%=trim(.fields("奖金").value)%>
</td>

注意<%...%>中的内容即是要输出的变量或字段值,(废话,ASP人都知道)

6 保存,扩展名由htm改为asp即可。

运行看看,浏览器自动弹出下载对话框,文件名为“测试.doc”,也可直接打开!

此法最大的优点在于多么复杂的word格式表格也能轻松搞定。

缺点是html代码稍有点复杂,表格位置不好找。其实在做word文件时在单元格里输入特殊字符,然后在htm代码中查找该字符就可轻松定位。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-02
这里是 html ,将数据提交到test.asp页面,保存为test.html
<form id="form1" name="form1" method="post" action="test.asp">
<label>
<input type="text" name="test" id="test" />
</label>
<label>
<input type="submit" name="button" id="button" value="提交" />
</label>
</form>
这里是 asp 页面,保存为test.asp
<%
dim test
test = request("test")
Set fs = Server.CreateObject("Scripting.FileSystemObject")
File = Server.MapPath("File1.txt")
'建立一个新文件File1.txt且必须是不存在的文件
Set txt = fs.CreateTextFile(File,False)
'建立一个新文件File1.txt,若原文件存在则覆盖掉
Set txt = fs.CreateTextFile(File)
txt.Write test
response.write("<script>alert('OK')</script>")
%>追问

出现了这个,麻烦看看~~~谢谢了。

追答

代码没有错误,这个就是你的IIS权限问题,设置IIS的写入权限,在IIS站点配置里面,勾选“写入权限”

本回答被提问者和网友采纳
第2个回答  推荐于2016-06-18

在ASP.NET中直接用Write()就可以了,代码如下 (.aspx.cs文件):

Response.Clear();
Response.Buffer = false;
Response.ContentType = "application/octet-stream";
Response.AppendHeader("content-disposition", "attachment;filename=" + filename+ ".txt;"); 
Response.Write("1234|ABCDE\r\n");
// 读取数据库,循环
for(i=0;i<100;i++)

Response.Write("1234|ABCDE\r\n");

Response.Flush();
Response.End();

相似回答