如何导入数据模板到MVC
在平常的生活中,我們可能需要添加大量的數(shù)據(jù),這時(shí)一條一條地新增肯定不能滿足我們的要求了,所以我們就需要批量導(dǎo)入數(shù)據(jù)了?,F(xiàn)在我就來大概說一下是怎么導(dǎo)入數(shù)據(jù)的。
我們要導(dǎo)入數(shù)據(jù)肯定要模板吧,因?yàn)椴豢赡茈S便寫下就可以導(dǎo)入數(shù)據(jù)的,肯定要合適的格式才可以,不然會(huì)出錯(cuò)的,所以第一件事就是要下載模板。
首先我們要在視圖寫打開一個(gè)下載的窗口,并在窗口裝載了指定的路徑。
控制器那里我們要獲取模板的路徑
然后我們要判斷模板是否存在
存在了就獲取文件的名稱并且返回文件
下載模板就寫好了,我們只需要按照模板的樣式寫數(shù)據(jù)就可以了。
當(dāng)我們把模板寫好后我們就要導(dǎo)入數(shù)據(jù)到數(shù)據(jù)庫了,這時(shí)我們要先把導(dǎo)入的Excel表格的數(shù)據(jù)保存到session中。
1、 獲取讀取的文件
2、 把文件轉(zhuǎn)換為二進(jìn)制數(shù)組
3、 二進(jìn)制數(shù)組轉(zhuǎn)成內(nèi)存流
4、 利用NPOI把內(nèi)存流中的數(shù)據(jù)讀取成Excel
在這里我們要引用NPOI,關(guān)于它的用法你們自己上網(wǎng)找,我就不多說了。
我們上傳表格的數(shù)據(jù)肯定需要提交表單,表格的數(shù)據(jù)重載這些,我就不多說了,前面我已經(jīng)說了很多次了。
控制器那邊我們先把session中的ImportExcel移除避免殘留以前數(shù)據(jù)。
Session.Remove(“ImportExcel”);
判斷頁面?zhèn)鬟^來的文件是否為Excel表格,根據(jù)它的后綴判斷。
聲明二進(jìn)制數(shù)組存放文件再把將傳入的文件轉(zhuǎn)化為二進(jìn)制的數(shù)組存入fileBytes中,將二進(jìn)制的數(shù)組轉(zhuǎn)化為內(nèi)存流再把內(nèi)存流轉(zhuǎn)化為工作簿。
之后我們要判斷工作簿中是否有工作表,沒有就用ISheet創(chuàng)建
有工作表了之后我們?cè)賱?chuàng)建表頭行,并添加數(shù)據(jù)。我們使用IRow創(chuàng)建行,用DataColumn創(chuàng)建單元格。
然后再為Excel表格添加內(nèi)容,我們使用for循環(huán)的方式把數(shù)據(jù)一條一條的添加到里面去。
接下來我們要提取Session中的數(shù)據(jù)、并進(jìn)行分頁操作,這個(gè)我前面也說過了,就不再重復(fù)了,你們自己去看一下吧。保存數(shù)據(jù)到數(shù)據(jù)庫和新增差不多,我也說過了,一樣也是要判斷是否有重復(fù)的數(shù)據(jù),重復(fù)了就不添加到數(shù)據(jù)庫里面去。導(dǎo)入數(shù)據(jù)大概就是這個(gè)樣子了,可能我說的有點(diǎn)簡(jiǎn)單,要是有什么地方漏了請(qǐng)你們幫忙指出來啊(?????)
總結(jié)
以上是生活随笔為你收集整理的如何导入数据模板到MVC的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 没有空间怎么备案(没有空间怎么备案账号)
- 下一篇: spring(7)spring mvc