Ⅰ 如何實現把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)
學會了哇?