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变量或数据库字段值。如以下代码代表一个单元格:
运行看看,浏览器自动弹出下载对话框,文件名为“测试.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文件保存在相对路径中,最好有实
<%
counten = "需要写入的内容"
set fobj=server.Createobject("scripting.filesystemobject")
set texta=fobj.CreatetextFile(server.mappath("测试.doc"),true)
texta.writeline(counten)
%>
相对路径的设置:server.mappath("测试.doc") 及文件名字
使用FSO 就可以做到,你把以上代码复制到一个 ASP 文件中运行一下
就可以看到结果了!
转载请注明出处51数据库 » asp数据导出到word