在Access和MSSqlserver里都有将表直接导出到Excel的工具

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Access和MSSqlserver里都有将表直接导出到Excel的工具相关的知识,希望对你有一定的参考价值。

在Access和MSSqlserver里都有将表直接导出到Excel的工具,可是当客户需要在程序里将数据库里的表生成Excel表格时,我们用一般的T-sql语句很难做到!下面是我结合网上资料和客户的需求写的代码,仅供学习交流.

<%
set rs=server.CreateObject("adodb.recordset")
sql="select * from Stu_signUp order by id asc"
rs.open sql,conn,1,1
Set fs = server.CreateObject("scripting.filesystemobject") 
‘--假设你想让生成的EXCEL文件做如下的存放 
filename = Server.MapPath("users.xls") 
‘--如果原来的EXCEL文件存在的话删除它 
if fs.FileExists(filename) then 
   fs.DeleteFile(filename) 
end  if 
‘--创建EXCEL文件 
set myfile = fs.CreateTextFile(filename,true) 
  dim ttxt,file,filepath,writefile
  ttxt="user.xls"  ‘为要写入的文件取个文件名,后缀可以是txt,xls,这里我用csv,这种文件打开也是excel表
  Set file = CreateObject("Scripting.FileSystemObject")
  Application.lock ‘写入文件的存放路径,一定要开放这个路径下的读写权限
  filepath=Server.MapPath(ttxt)
  Set Writefile = file.CreateTextFile(filepath,true)
  ‘在表格中写入第一行,字段描述,这个根据你实际的数据表字段来写
  if not (rs.eof And rs.bof) then

   dim  trLine,responsestr 
   strLine=""
   ‘如果你不需要改边列名
   For each x in rs.Fields
    strLine=strLine &x.name& chr(9)
   next
   ‘如果你的数据表中的字段非用户想要看到的,在这里可以将你的字段放在数组中写在Excel的首行
   arr=array("编号","学生姓名","学生性别","生日","所在学校","年级","班级","英语启蒙年龄","是否在课外机构学习英语","课外机构名称","入学时间","家长姓名","家长称谓","家长手机","家长工作单位","家长职业","学历","报名日期")
  For i=0 to Ubound(arr)
       strLine = strLine & arr(i)& chr(9) 
  Next
 
  myfile.writeline strLine
  Do while Not rs.EOF 
       strLine="" 
  j=0
       for each x in rs.Fields 
           strLine = strLine &x.value&  chr(9)
       next 
       myfile.writeline  strLine 

       rs.MoveNext 
   loop 
myfile.close
  rs.close
  set rs=nothing
end if
‘完成写入

%>

以上是关于在Access和MSSqlserver里都有将表直接导出到Excel的工具的主要内容,如果未能解决你的问题,请参考以下文章

将表从 SQL Server 2008 复制到 MS Access 2007

需要表单上的按钮以将表的字段名称插入 Access 中的另一个表

如何仅将表结构从 csv 文件导入 Access

MS SQL Server 中是不是有任何方法可以使用某种链接将表的一列映射到另一个数据库?

基于单击命令按钮将表从 Access 导出到 Excel

如何使用 pyodbc 将表从 MS Access 迁移到 Postgres?