轉帖|其它|編輯:郝浩|2012-01-04 21:12:26.000|閱讀 938 次
概述:本文采用第三方Aspose組件技術實現了Excel文件與數據庫之間的數據導入,導出交換功能。通過這樣的交換技術,可以以Excel作為數據交換中介,能很方便實現不同數據庫,不同系統之間的數據交換。因此,該技術在現代信息管理系統中有著十分重要的意義。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
一、引言
隨著互聯網和計算機軟件的不斷發展, 基于B/S 結構比傳統C/S結構有著很多優點,因而越來越受到人們的青睞。其優點包括系統維護升級方便,客戶端無需安裝軟件等等。因此,各種各樣的基于B/S結構的 軟件如企業信息管理系統、電子商務服務系統等被廣泛使用。由于微軟辦公系統Excel電子表格軟件有著強大的數據處理能力,很多企業,單位都會選擇其作為 業務數據存取,查詢工具。因此,在企業的信息管理系統中,通常需要對Excel文件和數據庫進行數據交換。即業務數據需要導入現有企業使用的B/S架構系 統中,或從現有系統中導出數據到Excel表格。這種數據導入導出工作非常繁瑣,而且處理效率也不高[1-2]。本文為使數據導入,導出方便,采用第三方 Aspose軟件實現了Excel與數據庫進行數據交換,即從數據庫導出Excel,或將Excel數據導入數據庫。文中采用 Asp.Net,SQLServer 2000技術,討論數據交換的主要技術以及其實現方法。
二、數據導入技術以及其實現
Aspose是一個功能十分強大的第三方控件,可以用來操作word,excel,ppt等文件,用這個控件來導入、導出數據非常方便。目 前,Aspose支持的語言有.NET,Java等。Aspose.Cells是操作微軟Excel電子表格中的組件。該組件除支持電子表格生成和其他基 本文件格式的功能外,還支持一系列先進的功能,包括允許從不同的數據源導入到電子表格中,或添加常見和復雜的數學,日期,財務,文字公式等功能。同時也支 持圖表,圖片,評論,圖形對象和控制等操作。
將Excel文件導到數據庫的一般步驟如下:使用B/S系統提供的文件上傳功能,把文件上傳到服 務器,再由Aspose.Cells控件對Excel進行操縱,把數據導入到數據庫。本文以SQL Server 2000為例,詳細說明數據導入整個過程。在使用Aspose組件時,首先需要在VS工程文件引入Aspose.Cells.dll動態類[3]。并在使 用該組件的文件導入如下包:
using Aspose.Cells;
//以下代碼實現將Excel文件上傳到服務器
string filePath = Server.MapPath("/uploads/");
fUpload.PostedFile.SaveAs(filePath+fUpload.FileName);
//以下代碼使用Aspose技術實現從磁盤中讀入Excel表格
//創建一個工作簿對象,并使用Excel文件路徑打開一個Excel文件
Workbook workbook = new Workbook();
workbook.Open(filePath+ fUpload.FileName);
//取得指向sheet0的Worksheet對象
Worksheet worksheet = workbook.Worksheets[0];
Cells cells = worksheet.Cells;
//循環讀取所有行,并讀取Excel文件中的每一列。在這里可以實現不同數據格式的轉換
for (int i = 0; i < cells.Rows.Count; i++)
{
string name= cells[i, 0].Value.Tostring();
string sex=cells[i,1].Value.Tostring();
If(sex==”1”) //數據格式轉換以實現數據遷移
sex=“男”;
else
sex=”女”;
…
}
//以下代碼實現把從Excel表讀取到的數據存入SQLServer 2000數據庫中。
SqlConnection conn = new SqlConnection();//創建連接對象
conn.ConnectionString = ConfigurationManager.AppSettings ["sqlcon"]; //sqlconn為web.config連接數據庫串
conn.Open();//打開數據庫
SqlCommand cmd = new SqlCommand("insert users into values(name, sex,…. ", conn);
cmd.ExecuteNonQuery();
conn.Close();//關閉數據庫
三、數據導出技術以及其實現
在實際的應用中,有時還需將數據從數據庫導出到Excel表格,以供業務人員在Excel表中根據業務需要實現數據匯總,查詢,處理等操作。
//下面從數據庫讀取需要導出的數據
string conn = ConfigurationManager.AppSettings["sqlcon"];
DataSet ds= new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(select * from users", conn);
adapter.Fill(ds);
//以下利用Apose.Cells組件將從數據庫中查詢的數據導出到Excel表格中,并保存在指定的路徑。
Workbook workbook = new Workbook();
workbook.Open(Server.MapPath("/uploads/"+fileName)//導入數據后存放文件名
Worksheet sheet = workbook.Worksheets[0];
sheet.Cells.ImportDataTable(ds.Tables[0], false, 0, 0);
while(workbook.Worksheets.Count>1)workbook.Worksheets.RemoveAt(workbook.Worksheets.Count - 1);
//裝Excel表保存到磁盤中去
workbook.Save(Server.MapPath("/uploads/"+fileName);
//利用Asp.net技術,提供excel文件讓用戶下載
Response.Redirect("/uploads/" + fileName);
四、結束語
本文采用第三方Aspose組件技術實現了Excel文件與數據庫之間的數據導入,導出交換功能。通過這樣的交換技術,可以以Excel作為數據交換中介,能很方便實現不同數據庫,不同系統之間的數據交換。因此,該技術在現代信息管理系統中有著十分重要的意義。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:網絡轉載