用户登录
用户注册

分享至

asp数据导出到word

  • 作者: 大坏蛋不大坏
  • 来源: 51数据库
  • 2020-04-21

1.asp中如何将数据库的内容导出到word?

这个我做过,用asp的话,效率很低,慢得要死~~~而且很容易脚本超时。

后来我是用vb6.0写的dll,然后在asp中调用的。

不知道搂住的服务器可不可以安装dll???

下面是asp中的代码

=====================================================

Set rs2=Server.CreateObject("ADODB.recordset")

sql="select * from eq where eqbumen='"&dep&"' order by eqbumen desc"

rs2.open sql,conn,1,1

set objExcel=CreateObject("Excel.Application")

objExcel.Workbooks.Open(server.mappath("\test")&"\book1.xlt") '打开Excel模板

objExcel.Sheets(1).select '选中工作页

set sheetActive=objExcel.ActiveWorkbook.ActiveSheet

num=2 '从Excel的第2行开始

Do while not rs2.eof '循环直至数据集中的数据写完

strRange="b"&num&":k"&num '设定要填写内容的单元区域

sheetActive.range(strRange).font.size=10 '设定字体大小

sheetActive.range(strRange).WrapText=false '设定文字回卷

sheetActive.range(strRange).ShrinkToFit=true '设定是否自动适应表格单元大小

sheetActive.range(strRange).value=array(rs2("zcid"),rs2("eqname"),rs2("eqchangjia"),rs2("eqxinghao"),rs2("eqnengli"),rs2("eqweizhi"),rs2("eqxianzhuang"),rs2("eqno"),rs2("eqbumen"),rs2("eqchejian")) '把数据集中的数据填写到相应的单元中

num=num+1

rs2.MoveNext

loop

function getTemporaryFile(myFileSystem)

dim tempFile,dotPos

tempFile=myFileSystem.getTempName

dotPos=instr(1,tempFile,".")

getTemporaryFile=mid(tempFile,1,dotPos)&"xls"

end function

set myFs=createObject("scripting.FileSystemObject")

filePos=server.mappath("\test")&"\temp" '要存放打印临时文件的临时目录

fileName=getTemporaryFile(myFs) '取得一个临时文件名

'myFs.DeleteFile filePos&"*.xls" '删除该目录下所有原先产生的临时打印文件

set myFs=nothing

objExcel.ActiveWorkbook.saveas filePos&filename

objExcel.quit

set objExcel=Nothing

2.asp.net实现将数据输出到word

dot模版文件中插入标签。对应读入数据中的值。问题是如何动态通过数据内容改变word生成的字体或样子。

//第一步生成word文档

//定义书签变量

object Name = "Name";//项目名

object BidNo = "BidNo";//招标编号

//第二步 读取数据,填充数据集

//SqlDataReader dr = XXXXX;//读取出来的数据集

//第三步 给书签赋值

docFile.Bookmarks.get_Item(ref Name).Range.Text = ds.Tables[0].Rows[0][2].ToString();

docFile.Bookmarks.get_Item(ref BidNo).Range.Text = ds.Tables[0].Rows[0][3].ToString();

appWord.Selection.TypeParagraph();//换行

appWord.Selection.Font.Bold = 0;//正常体

appWord.Selection.Font.Color = word.WdColor.wdColorBlack;//黑色字体

appWord.Selection.ParagraphFormat.Alignment = word.WdParagraphAlignment.wdAlignParagraphJustify;//两端对齐

3.如何在ASP中把数据库读出的数据生成Word文档,并且可以下载

网上找的答案,我试过了,可行。

1 利用word生成相应的word文件,如固定格式的表格等,然后用“另存为”功能存成htm格式。2 使用记事本等打开,可看见html源码。

3 将代码开始处的以下内容: 改为基本html代码: 4 在页面最开始处添加以下语句: <% Response.ContentType = "application/msword" response.AddHeader "content-disposition", "inline; filename=测试.doc" ' 此处可添加变量处理等语句,如打开数据库获取记录集等。 ' %>5 在html代码中找到表格中相应位置填入asp变量或数据库字段值。

如以下代码代表一个单元格: 可修改为: <%=trim(.fields("奖金").value)%> 注意<%。%>中的内容即是要输出的变量或字段值,(废话,ASP人都知道)6 保存,扩展名由htm改为asp即可。

运行看看,浏览器自动弹出下载对话框,文件名为“测试.doc”,也可直接打开!此法最大的优点在于多么复杂的word格式表格也能轻松搞定。缺点是html代码稍有点复杂,表格位置不好找。

其实在做word文件时在单元格里输入特殊字符,然后在htm代码中查找该字符就可轻松定位。

4.asp.net导出word

public void Download()

{

Random rd = new Random();

string fileName = DateTime.Now.ToString("yyyyMMddhhmm") + rd.Next() + ".doc";

//存储路径

string path = Server.MapPath(fileName);

//创建字符输出流

StreamWriter sw = new StreamWriter(path, true, System.Text.UnicodeEncoding.UTF8);

//需要导出的内容

string str = "<html><head><title>;无标题文档</title></head><body>;这里放从数据库导出的word文档内容</body></html>";

//写入

sw.Write(str);

sw.Close();

Response.Clear();

Response.Buffer = true;

this.EnableViewState = false;

Response.Charset = "utf-8";

Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));

Response.ContentType = "application/octet-stream";

Response.WriteFile(path);

Response.Flush();

Response.Close();

Response.End();

}

标准word文档的格式微软暂未公布,由此我们可将需要导出的内容转为标准HTML文件储存,后缀名为.doc

也可以将要导出内容转为标准XML格式存储,改后缀为.doc

具体格式随意新建个word文档,输入内容,另存为.XML可见

另外一种导出方式为word导出标准格式,服务器需要安装Microsoft Office word,需要预先设置好一个word文档并在要插入内容的地方设置书签做为模版,导出word文档时需要先遍历模版文件中的所有书签,然后给书签赋值就能实现导出数据了

还有不懂的可以直接百度HI我

是否可以解决您的问题?

5.ASP中,如何对数据自动生成WORD文件保存在相对路径中,最好有实

&lt;%

counten = "需要写入的内容"

set fobj=server.Createobject("scripting.filesystemobject")

set texta=fobj.CreatetextFile(server.mappath("测试.doc"),true)

texta.writeline(counten)

%&gt;

相对路径的设置:server.mappath("测试.doc") 及文件名字

使用FSO 就可以做到,你把以上代码复制到一个 ASP 文件中运行一下

就可以看到结果了!

转载请注明出处51数据库 » asp数据导出到word

软件
前端设计
程序设计
Java相关