本發(fā)明涉及計(jì)算機(jī)
技術(shù)領(lǐng)域:
:,特別涉及一種excel數(shù)據(jù)的導(dǎo)入導(dǎo)出方法及裝置。
背景技術(shù):
::在軟件系統(tǒng)中操作批量數(shù)據(jù)時(shí),往往會(huì)涉及到對excel數(shù)據(jù)的操作,包括對excel數(shù)據(jù)的導(dǎo)入和導(dǎo)出。傳統(tǒng)的操作方式是需要客戶端上安裝office軟件,在進(jìn)行excel數(shù)據(jù)的導(dǎo)入和導(dǎo)出時(shí),均需要打開相應(yīng)的excel文件,來將excel文件中需要導(dǎo)出的數(shù)據(jù)拷貝出來,或者將需要導(dǎo)入到excel文件中的數(shù)據(jù)拷貝粘貼進(jìn)去。若在軟件系統(tǒng)操作過程中發(fā)現(xiàn)客戶端未安裝有office軟件,則會(huì)進(jìn)行報(bào)錯(cuò)處理,如此,用戶只能被迫安裝office軟件,導(dǎo)致用戶體驗(yàn)不佳。技術(shù)實(shí)現(xiàn)要素:本發(fā)明實(shí)施例提供了一種excel數(shù)據(jù)的導(dǎo)入導(dǎo)出方法及裝置,以在未安裝有office軟件的客戶端上實(shí)現(xiàn)對excel數(shù)據(jù)的導(dǎo)入導(dǎo)出。本發(fā)明實(shí)施例提供了一種datatable數(shù)據(jù)導(dǎo)出到excel的方法,包括:確定excel用于存儲(chǔ)數(shù)據(jù)的xlm文件所對應(yīng)的路徑;針對datatable中的每一個(gè)單元格,確定單元格的位置以及單元格內(nèi)數(shù)據(jù)的類型;根據(jù)各個(gè)單元格內(nèi)數(shù)據(jù)的類型,將datatable中各個(gè)單元格中的數(shù)據(jù)轉(zhuǎn)換為相應(yīng)類型的excel數(shù)據(jù);并根據(jù)excel用于存儲(chǔ)數(shù)據(jù)的xlm文件所對應(yīng)的路徑,以及根據(jù)各個(gè)單元格的位置,將轉(zhuǎn)換的各個(gè)excel數(shù)據(jù)插入到xlm文件中。優(yōu)選地,進(jìn)一步包括:預(yù)先構(gòu)建動(dòng)態(tài)鏈接庫excelhelper,所述動(dòng)態(tài)鏈接庫excelhelper至少包括如下數(shù)據(jù)類型基礎(chǔ)類中的一種或多種:textcell,datecell、numbercell和formulacell;所述根據(jù)各個(gè)單元格內(nèi)數(shù)據(jù)的類型,將datatable中各個(gè)單元格中的數(shù)據(jù)轉(zhuǎn)換為excel數(shù)據(jù),包括:在單元格內(nèi)數(shù)據(jù)的類型為文本類型時(shí),則調(diào)用textcell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為文本類型的excel數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為日期類型時(shí),則調(diào)用datecell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為日期類型的excel數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為數(shù)字類型時(shí),則調(diào)用numbercell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為數(shù)字類型的excel數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為公式類型時(shí),則調(diào)用formulacell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為公式類型的excel數(shù)據(jù)。優(yōu)選地,在所述將轉(zhuǎn)換的各個(gè)excel數(shù)據(jù)插入到excel中之前,進(jìn)一步包括:計(jì)算datatable中各個(gè)單元格的長度,并將datatable中每一列上最大長度的單元格對應(yīng)的長度設(shè)置為xml文件中該列的列寬。本發(fā)明另一實(shí)施例提供了一種excel數(shù)據(jù)導(dǎo)入到datatable的方法,包括:確定excel用于存儲(chǔ)數(shù)據(jù)的xlm文件所對應(yīng)的路徑;根據(jù)excel用于存儲(chǔ)數(shù)據(jù)的xlm文件所對應(yīng)的路徑,確定xlm文件中各個(gè)單元格的位置以及單元格內(nèi)數(shù)據(jù)的類型;根據(jù)各個(gè)單元格內(nèi)數(shù)據(jù)的類型,將xlm文件中各個(gè)單元格中的數(shù)據(jù)轉(zhuǎn)換為相應(yīng)類型的datatable數(shù)據(jù);根據(jù)各個(gè)單元格的位置,將轉(zhuǎn)換的各個(gè)datatable數(shù)據(jù)插入到datatable中。優(yōu)選地,進(jìn)一步包括:預(yù)先構(gòu)建動(dòng)態(tài)鏈接庫excelhelper,所述動(dòng)態(tài)鏈接庫excelhelper至少包括如下數(shù)據(jù)類型基礎(chǔ)類中的一種或多種:textcell,datecell、numbercell和formulacell;所述根據(jù)各個(gè)單元格內(nèi)數(shù)據(jù)的類型,將excel中各個(gè)單元格中的數(shù)據(jù)轉(zhuǎn)換為相應(yīng)類型的datatable數(shù)據(jù),包括:在單元格內(nèi)數(shù)據(jù)的類型為文本類型時(shí),則調(diào)用textcell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為文本類型的datatable數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為日期類型時(shí),則調(diào)用datecell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為日期類型的datatable數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為數(shù)字類型時(shí),則調(diào)用numbercell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為數(shù)字類型的datatable數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為公式類型時(shí),則調(diào)用formulacell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為公式類型的datatable數(shù)據(jù)。本發(fā)明又一實(shí)施例提供了一種datatable數(shù)據(jù)導(dǎo)出到excel的裝置,包括:第一確定單元,用于確定excel用于存儲(chǔ)數(shù)據(jù)的xlm文件所對應(yīng)的路徑;第二確定單元,用于針對datatable中的每一個(gè)單元格,確定單元格的位置以及單元格內(nèi)數(shù)據(jù)的類型;轉(zhuǎn)換單元,用于根據(jù)各個(gè)單元格內(nèi)數(shù)據(jù)的類型,將datatable中各個(gè)單元格中的數(shù)據(jù)轉(zhuǎn)換為相應(yīng)類型的excel數(shù)據(jù);插入單元,用于并根據(jù)excel用于存儲(chǔ)數(shù)據(jù)的xlm文件所對應(yīng)的路徑,以及根據(jù)各個(gè)單元格的位置,將轉(zhuǎn)換的各個(gè)excel數(shù)據(jù)插入到xlm文件中。優(yōu)選地,進(jìn)一步包括:構(gòu)建單元,用于構(gòu)建動(dòng)態(tài)鏈接庫excelhelper,所述動(dòng)態(tài)鏈接庫excelhelper至少包括如下數(shù)據(jù)類型基礎(chǔ)類中的一種或多種:textcell,datecell、numbercell和formulacell;所述轉(zhuǎn)換單元,具體用于:在單元格內(nèi)數(shù)據(jù)的類型為文本類型時(shí),則調(diào)用textcell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為文本類型的excel數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為日期類型時(shí),則調(diào)用datecell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為日期類型的excel數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為數(shù)字類型時(shí),則調(diào)用numbercell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為數(shù)字類型的excel數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為公式類型時(shí),則調(diào)用formulacell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為公式類型的excel數(shù)據(jù)。優(yōu)選地,進(jìn)一步包括:計(jì)算單元,用于計(jì)算datatable中各個(gè)單元格的長度;配置單元,用于將datatable中每一列上最大長度的單元格對應(yīng)的長度設(shè)置為xml文件中該列的列寬。本發(fā)明在一實(shí)施例提供了一種excel數(shù)據(jù)導(dǎo)入到datatable的裝置,包括:第一確定單元,用于確定excel用于存儲(chǔ)數(shù)據(jù)的xlm文件所對應(yīng)的路徑;第二確定單元,用于根據(jù)excel用于存儲(chǔ)數(shù)據(jù)的xlm文件所對應(yīng)的路徑,確定xlm文件中各個(gè)單元格的位置以及單元格內(nèi)數(shù)據(jù)的類型;轉(zhuǎn)換單元,用于根據(jù)各個(gè)單元格內(nèi)數(shù)據(jù)的類型,將xlm文件中各個(gè)單元格中的數(shù)據(jù)轉(zhuǎn)換為相應(yīng)類型的datatable數(shù)據(jù);插入單元,用于根據(jù)各個(gè)單元格的位置,將轉(zhuǎn)換的各個(gè)datatable數(shù)據(jù)插入到datatable中。優(yōu)選地,進(jìn)一步包括:構(gòu)建單元,用于構(gòu)建動(dòng)態(tài)鏈接庫excelhelper,所述動(dòng)態(tài)鏈接庫excelhelper至少包括如下數(shù)據(jù)類型基礎(chǔ)類中的一種或多種:textcell,datecell、numbercell和formulacell;所述轉(zhuǎn)換單元,具體用于:在單元格內(nèi)數(shù)據(jù)的類型為文本類型時(shí),則調(diào)用textcell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為文本類型的datatable數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為日期類型時(shí),則調(diào)用datecell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為日期類型的datatable數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為數(shù)字類型時(shí),則調(diào)用numbercell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為數(shù)字類型的datatable數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為公式類型時(shí),則調(diào)用formulacell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為公式類型的datatable數(shù)據(jù)。本發(fā)明實(shí)施例提供了一種excel數(shù)據(jù)的導(dǎo)入導(dǎo)出方法及裝置,基于excel是通過xml文件存儲(chǔ)數(shù)據(jù)的特點(diǎn),通過確定excel用于存儲(chǔ)數(shù)據(jù)的xml文件所對應(yīng)的路徑,以及將datatable數(shù)據(jù)與excel數(shù)據(jù)的數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換后的數(shù)據(jù)插入到xml文件中或插入到datatable中,即可以無需在客戶端上安裝office軟件,以實(shí)現(xiàn)excel數(shù)據(jù)的導(dǎo)入導(dǎo)出,從而提高用戶的體驗(yàn)。附圖說明為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實(shí)施例一提供的datatable數(shù)據(jù)導(dǎo)出到excel的方法流程圖;圖2是本發(fā)明實(shí)施例二提供的excel數(shù)據(jù)導(dǎo)入到datatable的方法流程圖;圖3是本發(fā)明實(shí)施例三提供的excel文件以xml文件存儲(chǔ)數(shù)據(jù)的文件示意圖;圖4是本發(fā)明實(shí)施例三提供的動(dòng)態(tài)鏈接庫;圖5是本發(fā)明實(shí)施例四提供的一種datatable數(shù)據(jù)導(dǎo)出到excel裝置結(jié)構(gòu)示意圖;圖6是本發(fā)明實(shí)施例四提供的另一種datatable數(shù)據(jù)導(dǎo)出到excel裝置結(jié)構(gòu)示意圖;圖7是本發(fā)明實(shí)施例四提供的又一種datatable數(shù)據(jù)導(dǎo)出到excel裝置結(jié)構(gòu)示意圖;圖8是本發(fā)明實(shí)施例五提供的一種excel數(shù)據(jù)導(dǎo)入到datatable裝置結(jié)構(gòu)示意圖;圖9是本發(fā)明實(shí)施例五提供的另一種excel數(shù)據(jù)導(dǎo)入到datatable裝置結(jié)構(gòu)示意圖。具體實(shí)施方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。實(shí)施例一:如圖1所示,本發(fā)明實(shí)施例提供了一種datatable數(shù)據(jù)導(dǎo)出到excel的方法,該方法可以包括:步驟101:確定excel用于存儲(chǔ)數(shù)據(jù)的xlm文件所對應(yīng)的路徑;步驟102:針對datatable中的每一個(gè)單元格,確定單元格的位置以及單元格內(nèi)數(shù)據(jù)的類型;步驟103:根據(jù)各個(gè)單元格內(nèi)數(shù)據(jù)的類型,將datatable中各個(gè)單元格中的數(shù)據(jù)轉(zhuǎn)換為相應(yīng)類型的excel數(shù)據(jù);步驟104:并根據(jù)excel用于存儲(chǔ)數(shù)據(jù)的xlm文件所對應(yīng)的路徑,以及根據(jù)各個(gè)單元格的位置,將轉(zhuǎn)換的各個(gè)excel數(shù)據(jù)插入到xlm文件中。在本發(fā)明上述實(shí)施例中,基于2007以上版本的excel是通過xml文件存儲(chǔ)數(shù)據(jù)的特點(diǎn),通過確定excel用于存儲(chǔ)數(shù)據(jù)的xml文件所對應(yīng)的路徑,以及將datatable數(shù)據(jù)與excel數(shù)據(jù)的數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換后的數(shù)據(jù)插入到xml文件中,即可以無需在客戶端上安裝office軟件,以實(shí)現(xiàn)excel數(shù)據(jù)的導(dǎo)入,從而提高用戶的體驗(yàn)。在本發(fā)明一個(gè)實(shí)施例中,由于datatable數(shù)據(jù)和excel數(shù)據(jù)的格式不同,因此,為了實(shí)現(xiàn)將datatable數(shù)據(jù)導(dǎo)出到excel用于存儲(chǔ)數(shù)據(jù)的xml文件中,可以進(jìn)一步包括:預(yù)先構(gòu)建動(dòng)態(tài)鏈接庫excelhelper,所述動(dòng)態(tài)鏈接庫excelhelper至少包括如下數(shù)據(jù)類型基礎(chǔ)類中的一種或多種:textcell,datecell、numbercell和formulacell;所述根據(jù)各個(gè)單元格內(nèi)數(shù)據(jù)的類型,將datatable中各個(gè)單元格中的數(shù)據(jù)轉(zhuǎn)換為excel數(shù)據(jù),包括:在單元格內(nèi)數(shù)據(jù)的類型為文本類型時(shí),則調(diào)用textcell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為文本類型的excel數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為日期類型時(shí),則調(diào)用datecell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為日期類型的excel數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為數(shù)字類型時(shí),則調(diào)用numbercell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為數(shù)字類型的excel數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為公式類型時(shí),則調(diào)用formulacell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為公式類型的excel數(shù)據(jù)。在本發(fā)明一個(gè)實(shí)施例中,由于單元格中存放的數(shù)據(jù)長度不同,可能導(dǎo)致在導(dǎo)出到excel用于存儲(chǔ)數(shù)據(jù)的xml文件中時(shí),xml文件的單元格無法滿足數(shù)據(jù)長度,因此,可以進(jìn)一步包括:計(jì)算datatable中各個(gè)單元格的長度,并將datatable中每一列上最大長度的單元格對應(yīng)的長度設(shè)置為excel中該列的列寬。從而可以實(shí)現(xiàn)導(dǎo)出到xml文件中時(shí)可以自適應(yīng)列寬。實(shí)施例二:如圖2所示,本發(fā)明實(shí)施例提供了一種excel數(shù)據(jù)導(dǎo)入到datatable的方法,該方法可以包括:步驟201:確定excel用于存儲(chǔ)數(shù)據(jù)的xlm文件所對應(yīng)的路徑;步驟202:根據(jù)excel用于存儲(chǔ)數(shù)據(jù)的xlm文件所對應(yīng)的路徑,確定xlm文件中各個(gè)單元格的位置以及單元格內(nèi)數(shù)據(jù)的類型;步驟203:根據(jù)各個(gè)單元格內(nèi)數(shù)據(jù)的類型,將xlm文件中各個(gè)單元格中的數(shù)據(jù)轉(zhuǎn)換為相應(yīng)類型的datatable數(shù)據(jù);步驟204:根據(jù)各個(gè)單元格的位置,將轉(zhuǎn)換的各個(gè)datatable數(shù)據(jù)插入到datatable中。在本發(fā)明上述實(shí)施例中,基于2007以上版本的excel是通過xml文件存儲(chǔ)數(shù)據(jù)的特點(diǎn),通過確定excel用于存儲(chǔ)數(shù)據(jù)的xml文件所對應(yīng)的路徑,以及將datatable數(shù)據(jù)與excel數(shù)據(jù)的數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換后的數(shù)據(jù)插入到datatable中,即可以無需在客戶端上安裝office軟件,以實(shí)現(xiàn)excel數(shù)據(jù)的導(dǎo)出,從而提高用戶的體驗(yàn)。在本發(fā)明一個(gè)實(shí)施例中,由于datatable數(shù)據(jù)和excel數(shù)據(jù)的格式不同,因此,為了實(shí)現(xiàn)將excel用于存儲(chǔ)數(shù)據(jù)的xml文件中的數(shù)據(jù)導(dǎo)入到datatable中,可以進(jìn)一步包括:預(yù)先構(gòu)建動(dòng)態(tài)鏈接庫excelhelper,所述動(dòng)態(tài)鏈接庫excelhelper至少包括如下數(shù)據(jù)類型基礎(chǔ)類中的一種或多種:textcell,datecell、numbercell和formulacell;所述根據(jù)各個(gè)單元格內(nèi)數(shù)據(jù)的類型,將excel中各個(gè)單元格中的數(shù)據(jù)轉(zhuǎn)換為相應(yīng)類型的datatable數(shù)據(jù),包括:在單元格內(nèi)數(shù)據(jù)的類型為文本類型時(shí),則調(diào)用textcell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為文本類型的datatable數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為日期類型時(shí),則調(diào)用datecell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為日期類型的datatable數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為數(shù)字類型時(shí),則調(diào)用numbercell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為數(shù)字類型的datatable數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為公式類型時(shí),則調(diào)用formulacell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為公式類型的datatable數(shù)據(jù)。實(shí)施例三:對于office2007及以上版本的excel數(shù)據(jù)存儲(chǔ)是基于xml文件的,例如,將一個(gè)2007版本以上的excel文件的擴(kuò)展名修改為rar后,對其進(jìn)行解壓可以得到如圖3所示的文件。其中,sheet1.xml對應(yīng)著excel文件中的工作簿sheet1,且excel中有多少個(gè)工作簿,那么該解壓后worksheets文件夾下則會(huì)有多少個(gè)sheet文件。excel中的數(shù)據(jù)皆由這些xml文件描繪而成。根據(jù)以上數(shù)據(jù)存儲(chǔ)的特點(diǎn),操作excel數(shù)據(jù)就是操作這些xml文件,因此,該方法需要使用openxml技術(shù)來操作上述xml文件,從而實(shí)現(xiàn)對excel文件的操作。為了可以操作xml文件,首先創(chuàng)建一個(gè)動(dòng)態(tài)鏈接庫excelhelper,該動(dòng)態(tài)鏈接庫excelhelper的結(jié)構(gòu)請參考圖4。在圖4中,該動(dòng)態(tài)鏈接庫excelhelper至少可以包括如下三類:(1)數(shù)據(jù)類型基礎(chǔ)類;(2)基礎(chǔ)操作類;(3)公共操作類。數(shù)據(jù)類型基礎(chǔ)類至少可以包括如下的一種或多種:textcell,datecell、numbercell和formulacell;其中,textcell用于描述文本類型,datecell用于描述日期類型,numbercell用于描述文本類型,formulacell用于描述公式類型。數(shù)據(jù)類型基礎(chǔ)類可以實(shí)現(xiàn)datatable數(shù)據(jù)與excel數(shù)據(jù)的數(shù)據(jù)類型的轉(zhuǎn)換。其中,以textcell的實(shí)現(xiàn)為例,其代碼實(shí)現(xiàn)如下:基礎(chǔ)操作類(exceloperater)至少可以包括:獲取excel中sheet頁的方法、讀取單元格的方法、保存單元格的方法以及自適應(yīng)列寬的方法。其中,以自適應(yīng)列寬為例,其代碼實(shí)現(xiàn)如下:公共操作類可以實(shí)現(xiàn)供外部調(diào)用的類exportexcel和importexcel,其中,exportexcel用于實(shí)現(xiàn)將datatable數(shù)據(jù)導(dǎo)出到excel文件的方法,importexcel用于實(shí)現(xiàn)將excel數(shù)據(jù)導(dǎo)入到datatable中的方法。基于openxml實(shí)現(xiàn),在使用動(dòng)態(tài)鏈接庫的工程中需要添加documentformat.openxml.dll引用,同時(shí)還應(yīng)添加該動(dòng)態(tài)鏈接庫excelhelper的引用。根據(jù)步驟101-步驟104,在將datatable數(shù)據(jù)導(dǎo)出到excel中時(shí),其具體代碼如下://輸出excel的路徑stringfilename=@"d:\test.xlsx";//實(shí)例化exportexcelexportexcelexporter=newexportexcel();//調(diào)用類庫方法將datatable(dt)中的數(shù)據(jù)導(dǎo)出到excelexporter.datatabletoexcel(dt,filename);其中,在調(diào)用exportexcel類時(shí),其代碼實(shí)現(xiàn)如下:exportexcel代碼中的exceltodataset用于將excel中的數(shù)據(jù)導(dǎo)出到dataset中,其中excel中每個(gè)sheet頁轉(zhuǎn)換為dataset中的一個(gè)datatable;exceltodatatable用于將excel中的默認(rèn)第一個(gè)sheet頁轉(zhuǎn)換為datatable。根據(jù)步驟201-步驟204,在將excel數(shù)據(jù)導(dǎo)入到datatable中時(shí),其具體代碼如下://excel路徑stringfilename=@"d:\test.xlsx";//實(shí)例化importexcelimportexcelimporter=newimportexcel();//調(diào)用類庫方法將excel數(shù)據(jù)導(dǎo)入到datasetdatasetds=importer.exceltodataset(filename);其中,在調(diào)用importexcel類時(shí),其代碼實(shí)現(xiàn)如下:importexcel代碼中的dataset2excel用于將dataset中的數(shù)據(jù)導(dǎo)出到excel文件中,其中dataset中的每個(gè)datatable轉(zhuǎn)換為excel中的一個(gè)sheet頁。實(shí)施例四:請參考圖5,本發(fā)明一個(gè)實(shí)施例還提供了一種datatable數(shù)據(jù)導(dǎo)出到excel的裝置,包括:第一確定單元501,用于確定excel用于存儲(chǔ)數(shù)據(jù)的xlm文件所對應(yīng)的路徑;第二確定單元502,用于針對datatable中的每一個(gè)單元格,確定單元格的位置以及單元格內(nèi)數(shù)據(jù)的類型;轉(zhuǎn)換單元503,用于根據(jù)各個(gè)單元格內(nèi)數(shù)據(jù)的類型,將datatable中各個(gè)單元格中的數(shù)據(jù)轉(zhuǎn)換為相應(yīng)類型的excel數(shù)據(jù);插入單元504,用于并根據(jù)excel用于存儲(chǔ)數(shù)據(jù)的xlm文件所對應(yīng)的路徑,以及根據(jù)各個(gè)單元格的位置,將轉(zhuǎn)換的各個(gè)excel數(shù)據(jù)插入到xlm文件中。在本發(fā)明一個(gè)實(shí)施例中,請參考圖6,該datatable數(shù)據(jù)導(dǎo)出到excel的裝置可以進(jìn)一步包括:構(gòu)建單元601,用于構(gòu)建動(dòng)態(tài)鏈接庫excelhelper,所述動(dòng)態(tài)鏈接庫excelhelper至少包括如下數(shù)據(jù)類型基礎(chǔ)類中的一種或多種:textcell,datecell、numbercell和formulacell;所述轉(zhuǎn)換單元503,具體用于:在單元格內(nèi)數(shù)據(jù)的類型為文本類型時(shí),則調(diào)用textcell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為文本類型的excel數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為日期類型時(shí),則調(diào)用datecell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為日期類型的excel數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為數(shù)字類型時(shí),則調(diào)用numbercell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為數(shù)字類型的excel數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為公式類型時(shí),則調(diào)用formulacell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為公式類型的excel數(shù)據(jù)。在本發(fā)明一個(gè)實(shí)施例中,請參考圖7,該datatable數(shù)據(jù)導(dǎo)出到excel的裝置可以進(jìn)一步包括:計(jì)算單元701,用于計(jì)算datatable中各個(gè)單元格的長度;配置單元702,用于將datatable中每一列上最大長度的單元格對應(yīng)的長度設(shè)置為xml文件中該列的列寬。實(shí)施例五:請參考圖8,本發(fā)明一個(gè)實(shí)施例還提供了一種excel數(shù)據(jù)導(dǎo)入到datatable的裝置,包括:第一確定單元801,用于確定excel用于存儲(chǔ)數(shù)據(jù)的xlm文件所對應(yīng)的路徑;第二確定單元802,用于根據(jù)excel用于存儲(chǔ)數(shù)據(jù)的xlm文件所對應(yīng)的路徑,確定xlm文件中各個(gè)單元格的位置以及單元格內(nèi)數(shù)據(jù)的類型;轉(zhuǎn)換單元803,用于根據(jù)各個(gè)單元格內(nèi)數(shù)據(jù)的類型,將xlm文件中各個(gè)單元格中的數(shù)據(jù)轉(zhuǎn)換為相應(yīng)類型的datatable數(shù)據(jù);插入單元804,用于根據(jù)各個(gè)單元格的位置,將轉(zhuǎn)換的各個(gè)datatable數(shù)據(jù)插入到datatable中。在本發(fā)明一個(gè)實(shí)施例中,請參考圖9,該excel數(shù)據(jù)導(dǎo)入到datatable的裝置可以進(jìn)一步包括:構(gòu)建單元901,用于構(gòu)建動(dòng)態(tài)鏈接庫excelhelper,所述動(dòng)態(tài)鏈接庫excelhelper至少包括如下數(shù)據(jù)類型基礎(chǔ)類中的一種或多種:textcell,datecell、numbercell和formulacell;所述轉(zhuǎn)換單元803,具體用于:在單元格內(nèi)數(shù)據(jù)的類型為文本類型時(shí),則調(diào)用textcell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為文本類型的datatable數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為日期類型時(shí),則調(diào)用datecell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為日期類型的datatable數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為數(shù)字類型時(shí),則調(diào)用numbercell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為數(shù)字類型的datatable數(shù)據(jù);在單元格內(nèi)數(shù)據(jù)的類型為公式類型時(shí),則調(diào)用formulacell將該單元格中的數(shù)據(jù)轉(zhuǎn)換為公式類型的datatable數(shù)據(jù)。綜上,本發(fā)明各個(gè)實(shí)施例至少可以實(shí)現(xiàn)如下有益效果:1、在本發(fā)明實(shí)施例中,基于excel是通過xml文件存儲(chǔ)數(shù)據(jù)的特點(diǎn),通過確定excel用于存儲(chǔ)數(shù)據(jù)的xml文件所對應(yīng)的路徑,以及將datatable數(shù)據(jù)與excel數(shù)據(jù)的數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換后的數(shù)據(jù)插入到xml文件中或插入到datatable中,即可以無需在客戶端上安裝office軟件,以實(shí)現(xiàn)excel數(shù)據(jù)的導(dǎo)入導(dǎo)出,從而提高用戶的體驗(yàn)。2、在本發(fā)明實(shí)施例中,通過計(jì)算datatable中各個(gè)單元格的長度,并將datatable中每一列上最大長度的單元格對應(yīng)的長度設(shè)置為excel中該列的列寬,從而可以實(shí)現(xiàn)導(dǎo)出到xml文件中時(shí)可以自適應(yīng)列寬。上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實(shí)施例基于同一構(gòu)思,具體內(nèi)容可參見本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。需要說明的是,在本文中,諸如第一和第二之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)······”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同因素。本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)在計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:rom、ram、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)中。最后需要說明的是:以上所述僅為本發(fā)明的較佳實(shí)施例,僅用于說明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。當(dāng)前第1頁12當(dāng)前第1頁12