答案:果从SQL数据库中,导出数据到Excel,如果Excel文件已经存在,而且已经按照要接收的数据创建好表头,就可以简单的用:
insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:test.xls',sheet1$)
select * from 表
--如果Excel文件不存在,也可以用BCP来导成类Excel的文件,注意大小写:
--导出表的情况
EXEC master..xp_cmdshell 'bcp pubs.dbo.authors out c:\temp1.xls -c -q -S"HUAWEI-CECF7A04" -U"sa" -P"sa"''
执行SQL语句导出:
EXEC master..xp_cmdshell 'bcp "SELECT au_fname FROM pubs.dbo.authors" queryout c:\temp1.xls -c -S"HUAWEI-CECF7A04" -U"sa" -P"sa"'
注意以上c:\temp1.xls必须不存在
使用CopyFromRecordset将一个记录集中的所有记录一起写入EXCEL
示例
本示例将 DAO Recordset 对象中的字段名称复制到工作表的第一行中,并将这些名称的格式设为加粗。然后,本示例将记录集复制到工作表中,复制的起始位置在 A2 单元格。
For iCols = 0 to rs.Fields.Count - 1
ws.Cells(1, iCols + 1).Value = rs.Fields(iCols).Name
Next
ws.Range(ws.Cells(1, 1), _
ws.Cells(1, rs.Fields.Count)).Font.Bold = True
ws.Range("A2").CopyFromRecordset rs
其他:1创建数据库
USE [Report]
GO
/****** Object: Table [dbo].[BookInfo] Script Date: 11/29/2011 20:52:04 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[BookInfo]') AND type in (N'U'))
DROP TABLE [dbo].[BookInfo]
GO
USE [Report]
GO
/****** Object: Table [dbo].[BookInfo] Script Date: 11/29/2011 20:52:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BookInfo](
[省份] [varchar](50) NULL,
[市] [varchar](50) NULL,
[县] [varchar](50) NULL,
[社区名字] [varchar](50) NULL,
[管理员名字] [varchar](50) NULL,
[手机号码] [varchar](50) NULL,
[会员数] int NULL,
[录入名字] [varchar](50) NULL,
[录入时间] [varchar](50) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
2个步骤
--开启导入exec程序
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
--改你所要execl的地址 Sheet2$ 看你的数据在哪里
insert into BookInfo
SELECT * FROM OPENROWSET(
'Microsoft.Jet.OLEDB.4.0', 'EXCEL 5.0;HDR=YES;IMEX=2;DATABASE=E:\统计数据.xls'
,'SELECT * FROM [Sheet2$]')
--关闭导入exec程序
--使用完成后,关闭Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
改成你要的字段。每天只需执行sql
上一个:用java如何将数据库的excel表中的某个字段读取出来?
下一个:一个excel表导入SQL Server,对其中一个字段转换时要加前缀,如原“001”转换后为“A001"。