Ⅰ 如何实现把sql数据导入excel中
soaoffice的示例中有,soaexcel 示例 orderstat2 页演示了的
下面是 orderstat2.aspx.cs 文件里的代码:
...........................................
SOAOfficeX.ExcelResponse SOAExcel = new SOAOfficeX.ExcelResponse();
SOAExcel.DisableSheetDoubleClick = true;
SOAExcel.DisableSheetRightClick = true;
SOAExcel.DisableSheetSelection = true;
SOAOfficeX.IExcelResSheet sheetOrder = SOAExcel.OpenSheet("查询表");
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+
Server.MapPath("demodata/soademo.mdb");
string sql = "SELECT * from OrderMaster order by ID desc";
OleDbConnection conn = new OleDbConnection(connString);
OleDbCommand cmd = new OleDbCommand(sql, conn);
conn.Open();
cmd.CommandType = CommandType.Text;
OleDbDataReader Reader = cmd.ExecuteReader();
int i = 0;
sheetOrder.UseRangeFormat("B5:F7");
while(Reader.Read())
{
sheetOrder.OpenCell("B" + (5 + i).ToString()).value = Reader["OrderNum"].ToString();
sheetOrder.OpenCell("C" + (5 + i).ToString()).value = Reader["OrderDate"].ToString();
sheetOrder.OpenCell("D" + (5 + i).ToString()).value = Reader["CustName"].ToString();
sheetOrder.OpenCell("E" + (5 + i).ToString()).value = Reader["SalesName"].ToString();
sheetOrder.OpenCell("F" + (5 + i).ToString()).value = Reader["Amount"].ToString();//金额
i++;
}
Reader.Close();
conn.Close();
SOAOfficeX.SOAOfficeCtrl SOACtrl = new SOAOfficeX.SOAOfficeCtrl();
// 设置连接SOAOFFICE中间件服务器端SOAServer的参数
SOACtrl.Server = Request.ServerVariables["HTTP_HOST"];
SOACtrl.ServerPort = "4357";
// 设置界面样式
SOACtrl.MainStyle = SOAOfficeX.soaMainStyle.VistaBlue;
SOACtrl.Caption = "查询表";
SOACtrl.BorderStyle = SOAOfficeX.soaBorderStyle.BorderNone;
//获取数据对象
SOACtrl.Assign(SOAExcel);
SOACtrl.WebOpen("doc/OrderQuery.xls",SOAOfficeX.soaWorkMode.xlsReadOnly,userName, "Excel.Sheet");
Ⅱ 求教: ASP把excel导入SQL数据库时怎么才能忽略前几行
你这个思路有点绕啊,你为什么要在sql里写,完全可以在代码里略过前几行啊。
而且,你如果在sql里写成固定的,也不够灵活,写在代码里可以设计成从配置里取到底要略过几行,增加程序的健壮性。
Ⅲ mysql sql语句导入excel
1.数据透视视图是处理Excel常用的手段,而应用数据透视视图的第一步就是导入数据,如本例中,表中有889167行数据,那么将这些数据导入Excel表中将是一个很漫长的过程,可以借助SQL语句选择性的导入数据,以此来提交数据加载的速度。
Ⅳ 怎样用SQL 语句将xls文件导入数据库
方法如下:1、打开要导入的Excel文件,观察第一列是为字段还是数据。2、打开SQLServer,在需要导入的数据点击右键【任务】-【导入数据】出现导入导出向导。3、点击下一步,进入【选择数据源】页面,注意红框设置。4、点击下一步,进入【
Ⅳ sql server 导入excel数据怎样忽略前两行
SQL 导入向导是无法实现数据清洗功能,必须用zd到ssis工具。
如果是功能简单的操作方法是
建一个内与原表一样容的表B,然后每次导入前清空B,在B表中建一个update原表的trigger用来完成这个功能。
Ⅵ excel导入sql,用sql语句
1.打开SQL
Server
Management
Studio,按图中的路径进入导入数据界面。
2.导入的时候需要将EXCEL的文件准备好,不能打开。点击下一步。
3.数据源:选择“Microsoft
Excel”除了EXCEL类型的数据,SQL还支持很多其它数据源类型。
4.选择需要导入的EXCEL文件。点击浏览,找到导入的文件确定。
5.再次确认文件路径没有问题,点击下一步。
6.默认为是使用的WINODWS身份验证,改为使用SQL身份验证。输入数据库密码,注意:数据库,这里看看是不是导入的数据库。也可以在这里临时改变,选择其它数据库。
7.选择导入数据EXCEL表内容范围,若有几个SHEET表,或一个SHEET表中有些数据不想导入,则可以编写查询指定的数据进行导入。点击下一步。
8.选择需要导入的SHEET表,比如我在这里将SHEET表名改为price,则导入后生面的SQL数据库表为price$。点击进入下一步。
9.点击进入下一步。
10.在这里完整显示了导入的信息,执行内容,再次确认无误后,点击完成,开始执行。
11.可以看到任务执行的过程和进度。
12.执行成功:可以看看执行结果,已传输1754行,表示从EXCEL表中导入1754条数据,包括列名标题。这样就完成了,执行SQL查询语句:SELECT
*
FROM
price$就可以查看已导入的数据内容。
Ⅶ SQL数据库 导入到EXCEL表格
如果从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
Ⅷ 为什么把excel导入到sql server里面时只能导入一行其他的数据全部丢失
不知道你是怎么导的。
sqlserver里面有一个导入导出工具,用图示的工具按照向导一步步设置下去就ok啦
Ⅸ SQL语句如何将Excel表导入到数据库我要的是SQL语句
在查询分析器里,操作数据库对象选择Lee直接写 SQL语句:
如果是导入数据到现有表,则采用
INSERT INTO 表 SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
的形式
如果是导入数据并新增表,则采用
SELECT * INTO 表 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
的形式。
以上语句是将 EXCEL文件里 SHEET1工作表中所有的列都读进来,如果只想导部分列,可以
INSERT INTO 表 (a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
其实可以将 OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)当成一个表,例如我就写过这样一个句子:
INSERT INTO eval_channel_employee(channel,employee_id)
SELECT CASE a.渠道 WHEN 'DIY' THEN 1 WHEN 'RDC' THEN 0 WHEN 'KCM' THEN 2 ELSE 3 END
,b.id FROM
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\temp\name.xls',sheet1$) AS a,pers_employee b
WHERE a.员工编码 =b.code
简单的方法:
SQL2005中直接可以实现导入功能 SQL2008不知道可不可以。
操作过程如下:
第一步:登录到 SQL Server Management Studio,
第二步:在 “对象资源管理器 ”中右键单击 “管理 ”,在弹出列表中单击 “导入数据 ”
第三步:在 “导入向导 ”对话框中单击 “下一步 ”,进入到 “选择数据源 ”对话框,在 “数据源 ”列表中选择 “Microsoft Excel ”,同时选择相应的 Excel 文档,完成后单击 “下一步 ”(一定要勾选该对话框中的 “首行包含列名称 ”,因此它是将 Excel文档中的列标题为数据库表中的列项标题)
第四步:指定目标数据库服务,依次单击 “下一步 ”。。。。至到 “完成 ”
第五步:重新打到 SQL Server Management Studio,进入到导入的数据库表,可以发现所导入的 Excel文档数据。
你试下下面的吧:
打开SQL Server Configuration Manager,启用SQL Server Agent(实例名)。 启动模式更改为“自动”
Ⅹ 如何用sql语句从excel导入sql中
我做过这个功能,分3步。
第一步,校验Excel的数据是否符合条件,比如不能为空,数据类型不能冲突等等。
第二步,在数据库里创建临时表,表结构跟excel一模一样。把数据从excel照搬到临时表中。
第三步,根据过滤条件,把符合的数据从临时表中insert到对象表中。
//新文件名称
string newfile = name + lastName; //假定excel文件名 最终数据.excel
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("../../File/") + newfile + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
insertTempTable(strConn); //存入临时表 包含第一步和第二步
insertAllTable(); //第三步
/// <summary>
/// 把数据从xls导入临时创建表
/// </summary>
/// <param name="conn"></param>
public void insertTempTable(string conn)
{
string strConn = conn;
//这里假设excel字段名称为 字段(序号,零件编号,零件名称,数量,价格)
//excel表名称为Matrixkey
string query = "SELECT [序号],[零件编号],[零件名称],[数量],[价格] FROM [Matrixkey$] Where [零件编号] <> '' ";
OleDbCommand oleCommand = new OleDbCommand(query, new OleDbConnection(strConn));
OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCommand);
DataSet PartsDataSet = new DataSet();
oleAdapter.Fill(PartsDataSet, "[Matrixkey$]");
DBAccess dba = DBAccessFactory.CreateAccess(); //这是我的数据库操作类
//存储过程 createtmptable 用来创建临时表 结构跟excel一模一样
dba.ExecuteProcere("createtmptable");
foreach (DataRow row in PartsDataSet.Tables[0].Rows)
{
if (row["价格"].ToString() == "")
{row["价格"] = "0.00";}
dba.ExecuteInsertSQL(row, "tmpparts"); //执行第2步 创建的临时表叫tmpparts
}
}
/// <summary>
/// 执行最终的插入存储过程
/// </summary>
public void insertAllTable()
{
DBAccess dba = DBAccessFactory.CreateAccess();
//存储过程BuildRelation用来实现第3步 这个就简单了 我写个例子你看看
dba.ExecuteProcere("BuildRelation");
}
存储过程:BuildRelation
insert into 对象表 --假设对象表字段为 ID No Code Name Quantity Price 其中ID自增
select * from tmpparts
where 零件编号 not in (select Code from tmpparts)
学会了哇?