有没有办法把EXCEL转SQL数据库或者access?

Aries_0219 2010-11-24 11:02:53
RT···
要求EXCEL文件转SQL数据库文件或Access文件,而且可能将EXCEL里的相关操作(比如求和操作或者一些函数操作)可以一起转换过来,有这个方法么?
...全文
191 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
abuying 2010-12-01
  • 打赏
  • 举报
回复
那些公式是不是就是计算列
应该这前在表中定义好!下面是例子,请参考!
创建计算列

在CREATE TABLE或ALTER TABLE语句中定义的列可以源于独立的或者基于列的计算。如果需要在相关查询

中对相同的数据重复计算,则计算列就变得很有用。计算列以创建表或修改表的时候定义的表达式为基础

,除非使用了PERSISTED关键字,否则计算列不会物理保存在表中。

在这个技巧中,我会给出创建计算列的演示,并且介绍使用SQL Server 2005的PERSISTED选项的方法。通

过CREATE或ALTER TABLE增加一个计算列的语法如下:

column_name AS computed_column_expression
[ PERSISTED ]
column_name是新列的名字。computed_column_expression是你为了得到列的值而执行的计算。增加

PERSISTED关键字能让计算的结果被物理保存。

在这个示例中,我们向既有表中加了一个新的计算列:

ALTER TABLE Production.TransactionHistory  
ADD CostPerUnit AS (ActualCost/Quantity)

前面的示例创建了一个名为CostPerUnit的计算列。下一个查询利用它返回数量超过10的最高的

CostPerUnit:

SELECT TOP 1 CostPerUnit, Quantity, ActualCost
FROM Production.TransactionHistory
WHERE Quantity > 10
ORDER BY ActualCost DESC
这个查询返回:

CostPerUnit Quantity ActualCost
132.0408 13 1716.5304
下一个示例创建一个PERSISTED计算列,这意味着计算后的数据实际上会物理地保存在数据库中(但仍然

是由SQL Server自动计算):

CREATE TABLE HumanResources.CompanyStatistic
(CompanyID int NOT NULL,
StockTicker char(4) NOT NULL,
SharesOutstanding int NOT NULL,
Shareholders int NOT NULL,
AvgSharesPerShareholder AS
(SharesOutStanding/Shareholders) PERSISTED)

解析

第一个示例向Production.TransactionHistory表添加了一个名为CostPerUnit的非持久化列,使它在

SELECT查询中能像普通表列那样被引用:

ADD CostPerUnit AS (ActualCost/Quantity) 

计算列不能用DEFAULT或者FOREIGN KEY约束。计算列不能被显式更新或插入(因为它的值都是计算出的)



计算列能用在索引中,但是一定要符合一些条件。比如是确定的(对于一组给定的输入总是返回相同的结

果)和精确的(不包含浮点值)。

第二个示例演示了在CREATE TABLE命令中使用计算列:

AvgSharesPerShareholder AS (SharesOutStanding/Shareholders) PERSISTED
和第一个示例不同,增加了PERSISTED意味着数据被物理地保存在数据库中。对计算中使用的列进行的任

何修改都会引起存储值的再一次更新。但是保存的数据仍然不可以直接修改--数据仍然要经过计算。然而

和非持久化的方式不同,保存数据意味着列能用于表分区(请参阅4.7.1节的"实现表分区"技巧)或者非

精确(基于浮点)值的索引。

Aries_0219 2010-11-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 acmain_chm 的回复:]
打开一个ACCESS,然后通过菜单,外部数据导入,就可以导入EXCEL的记录。
[/Quote]

但是想把EXCEL里的相关公式比如求和,年求和公式都导到access里,可以么?
ACMAIN_CHM 2010-11-30
  • 打赏
  • 举报
回复
打开一个ACCESS,然后通过菜单,外部数据导入,就可以导入EXCEL的记录。
rfq 2010-11-25
  • 打赏
  • 举报
回复
学习了
飘零一叶 2010-11-24
  • 打赏
  • 举报
回复
使用SQL SERVER 导入导出功能或使用脚本
SELECT * INTO TB  FROM 
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:\temp1.xls";Extended properties=Excel 5.0') ...[temp1]
dawugui 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 lutaiyu 的回复:]
RT···
要求EXCEL文件转SQL数据库文件或Access文件,而且可能将EXCEL里的相关操作(比如求和操作或者一些函数操作)可以一起转换过来,有这个方法么?
[/Quote]
可以将数据导进去,不过函数等操作就没办法了。
SQL SERVER 和EXCEL的数据导入导出
1、在SQL SERVER里查询Excel数据:
-- ======================================================
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
SELECT *
FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
-------------------------------------------------------------------------------------------------

2、将Excel的数据导入SQL server :
-- ======================================================
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
实例:
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
-------------------------------------------------------------------------------------------------

3、将SQL SERVER中查询到的数据导成一个Excel文件
-- ======================================================
T-SQL代码:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'
参数:S 是SQL服务器名;U是用户;P是密码
说明:还可以导出文本文件等多种格式
实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'
EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'
在VB6中应用ADO导出EXCEL文件代码:
Dim cn As New ADODB.Connection
cn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"
cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'"
------------------------------------------------------------------------------------------------

4、在SQL SERVER里往Excel插入数据:
-- ======================================================
insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)

T-SQL代码:
INSERT INTO
OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',
'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls')...[Filiale1$]
(bestand, produkt) VALUES (20, 'Test')
-晴天 2010-11-24
  • 打赏
  • 举报
回复
你得先在EXCEL里把数据复制并进行选择性粘贴,并且在粘贴时选择"数值",去掉单元格中的"公式",这样才能正确地转到SQL 或 ACCESS 里,否则,由于转换工具不能正确识别公式,会出错.

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧