亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > .NET > 正文

ASP.NET讀取Excel中的數(shù)據(jù)轉(zhuǎn)存到數(shù)據(jù)庫(kù)中

2024-07-21 02:51:54
字體:
供稿:網(wǎng)友

【問題描述】

近日需要做一些數(shù)據(jù)倉(cāng)庫(kù)的內(nèi)容,發(fā)現(xiàn)數(shù)據(jù)庫(kù)搭好了以后,所有的數(shù)據(jù)文件都是Excel存儲(chǔ)的。然而數(shù)據(jù)又是及其繁雜,所以在創(chuàng)建好了事實(shí)表和維度表以后,準(zhǔn)備自己寫一個(gè)代碼將Excel中多維的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中。Excel表的部分?jǐn)?shù)據(jù)如下圖所示

所以需要對(duì)數(shù)據(jù)進(jìn)行處理,處理之后添加到數(shù)據(jù)庫(kù)中。

【準(zhǔn)備工作】

首先需要找到從Excel讀取數(shù)據(jù)的代碼。參考網(wǎng)址:http://www.jb51.net/article/34096.htm。代碼如下:

(1)頁(yè)面上的代碼

<div>       <%-- 文件上傳控件  用于將要讀取的文件上傳 并通過此控件獲取文件的信息--%>      <asp:FileUpload ID="fileSelect" runat="server" />          <%-- 點(diǎn)擊此按鈕執(zhí)行讀取方法--%>       <asp:Button ID="btnRead" runat="server" Text="ReadStart" /></div> ?。?)后臺(tái)處理代碼

 //聲明變量(屬性) string currFilePath = string.Empty; //待讀取文件的全路徑  string currFileExtension = string.Empty;  //文件的擴(kuò)展名  //Page_Load事件 注冊(cè)按鈕單擊事件  PRotected void Page_Load(object sender,EventArgs e)  {       }  //按鈕單擊事件   //里面的3個(gè)方法將在下面給出 protected void btnRead_Click(object sender,EventArgs e) {     Upload();  //上傳文件方法     if(this.currFileExtension ==".xlsx" || this.currFileExtension ==".xls")       {            DataTable dt = ReadExcelToTable(currFilePath);  //讀取Excel文件(.xls和.xlsx格式)       }       else if(this.currFileExtension == ".csv")         {               DataTable dt = ReadExcelWidthStream(currFilePath);  //讀取.csv格式文件         } }///<summary>///上傳文件到臨時(shí)目錄中 ///</ummary>private void Upload(){HttpPostedFile file = this.fileSelect.PostedFile;string fileName = file.FileName;string tempPath = System.IO.Path.GetTempPath(); //獲取系統(tǒng)臨時(shí)文件路徑fileName = System.IO.Path.GetFileName(fileName); //獲取文件名(不帶路徑)this.currFileExtension = System.IO.Path.GetExtension(fileName); //獲取文件的擴(kuò)展名this.currFilePath = tempPath + fileName; //獲取上傳后的文件路徑 記錄到前面聲明的全局變量file.SaveAs(this.currFilePath); //上傳}///<summary>///讀取xls/xlsx格式的Excel文件的方法 ///</ummary>///<param name="path">待讀取Excel的全路徑</param>///<returns></returns>private DataTable ReadExcelToTable(string path){//連接字符串string connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';"; // Office 07及以上版本 不能出現(xiàn)多余的空格 而且分號(hào)注意//string connstring = Provider=Microsoft.JET.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';"; //Office 07以下版本 因?yàn)楸救擞肙ffice2010 所以沒有用到這個(gè)連接字符串 可根據(jù)自己的情況選擇 或者程序判斷要用哪一個(gè)連接字符串using(OleDbConnection conn = new OleDbConnection(connstring)){conn.Open();DataTable sheetsName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null,"Table"}); //得到所有sheet的名字string firstSheetName = sheetsName.Rows[0][2].ToString(); //得到第一個(gè)sheet的名字string sql = string.Format("SELECT * FROM [{0}],firstSheetName); //查詢字符串OleDbDataAdapter ada =new OleDbDataAdapter(sql,connstring);DataSet set = new DataSet();ada.Fill(set);return set.Tables[0];}}///<summary>///讀取csv格式的Excel文件的方法 ///</ummary>///<param name="path">待讀取Excel的全路徑</param>///<returns></returns>private DataTable ReadExcelWithStream(string path){DataTable dt = new DataTable();bool isDtHasColumn = false; //標(biāo)記DataTable 是否已經(jīng)生成了列StreamReader reader = new StreamReader(path,System.Text.Encoding.Default); //數(shù)據(jù)流while(!reader.EndOfStream){string meaage = reader.ReadLine();string[] splitResult = message.Split(new char[]{','},StringSplitOption.None); //讀取一行 以逗號(hào)分隔 存入數(shù)組DataRow row = dt.NewRow();for(int i = 0;i<splitResult.Length;i++){if(!isDtHasColumn) //如果還沒有生成列{dt.Columns.Add("column" + i,typeof(string));}row[i] = splitResult[i];}dt.Rows.Add(row); //添加行isDtHasColumn = true; //讀取第一行后 就標(biāo)記已經(jīng)存在列 再讀取以后的行時(shí),就不再生成列}return dt;}【后續(xù)工作】

將Excel表存入到DataTable對(duì)象中,可以將讀取到的表格數(shù)據(jù)轉(zhuǎn)存到數(shù)據(jù)庫(kù)的事實(shí)表中。將所需要的時(shí)間、地域以及品種的ID值讀取以后,開始與Excel表中的數(shù)據(jù)一起存放到數(shù)據(jù)庫(kù)中。部分代碼如下所示

int i, j;            int region = 0;            //獲取作物ID值            cropnumber = int.Parse(CropID.Text.ToString());            //獲得更新數(shù)據(jù)庫(kù)類型            if (mianji.Checked == true)  //遇到播種面積時(shí)新增數(shù)據(jù)庫(kù)條目            {                for(i=2;i<40;i++)   //省份                {                    if (i == 3 || i == 9 || i == 13 || i == 21 || i == 28 || i == 34)  //跳過空白區(qū)域                        continue;                    //讀取地域ID值                    string proname = exceldt.Rows[i][0].ToString().Replace(" ", "");                    string sqlstr = "select Region_ID from [DimRegion] where Province_Name='" + proname + "'";                    DataTable dt = new DataTable();                    dt = BaseClass1.ReadTable(sqlstr);                    region = int.Parse(dt.Rows[0][0].ToString());                    for(j=1;j<60;j++)  //時(shí)間                    {                        float area = float.Parse(exceldt.Rows[i][j].ToString());                        string str = "insert into[FactCropProducts](Time_ID,Region_ID,Croptype_ID,Area) values(" + j + "," + region + "," + cropnumber + "," + area + ")";                        BaseClass1.execsql(str);                    }                }            }【后記】

這樣寫一個(gè)程序讀取Excel中的數(shù)據(jù),大大節(jié)省了時(shí)間。但是還有幾個(gè)未解決的問題:

(1)如果Excel表第一個(gè)sheet的名字為中文名,第二個(gè)sheet為Sheet1。則使用上面的代碼雖然是讀取第一個(gè)sheet的名稱,但是實(shí)際卻讀到的是Sheet1的內(nèi)容。

(2)如果數(shù)據(jù)量巨大,需要的品種又多,這個(gè)代碼就會(huì)有很大缺陷。就要一個(gè)一個(gè)輸入品種ID,然后一個(gè)一個(gè)Excel表進(jìn)行導(dǎo)入。浪費(fèi)了人力也浪費(fèi)了時(shí)間,所以這個(gè)代碼的改進(jìn)點(diǎn)還是不少的。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
亚洲午夜精品一区 二区 三区| 久久人妻无码aⅴ毛片a片app| av小说在线| 韩国福利视频一区| 激情综合五月网| 日韩欧美小视频| 中文字幕在线观看91| 国产盗摄精品一区二区酒店| 国产999精品久久久久久| 超薄肉色丝袜足j调教99| 久久99精品国产91久久来源| 天海翼一区二区三区四区在线观看| 久久中文字幕人妻| 欧美亚洲国产日韩2020| 亚洲国产成人精品激情在线| 91精品视频观看| 国产精品免费看| 国产成人一区在线| 国产激情无码一区二区三区| 欧美午夜欧美| 日本1区2区3区中文字幕| 欧美先锋影音| 亚洲爱爱爱爱爱| av在线资源| 懂色av中文一区二区三区| 国产欧美日韩精品高清二区综合区| 亚洲九九视频| 精品一区二区三区免费视频| 四虎成人免费在线| 91香蕉视频在线下载| 亚洲图片激情小说| 国产三级精品视频| 在线亚洲精品自拍| yellow网站在线观看| 最近免费中文字幕在线第一页| www.色婷婷| 久久天堂成人| 18岁成年人网站| 女人又爽又黄免费女仆| 久久久精品蜜桃| 国产无码精品视频| 国产婷婷色一区二区在线观看| 精品伊人久久大线蕉色首页| 青青草影院在线观看| 亚洲这里只有精品| 久久精品99久久久久久久久| 欧美日韩国产精品综合| 免费在线观看黄色av| 日本久久一区二区| 欧美激情一区二区三区久久久| 久久亚洲国产精品| 日本少妇毛茸茸| 国产成人精品一区二三区| av中文字幕播放| 激情成人中文字幕| 丝袜制服影音先锋| 九色|91porny| 亚洲va国产日韩欧美精品色婷婷| 一本久道久久综合中文字幕| 色综合久久久久久久久久久| 久久av无码精品人妻系列试探| 7799精品视频天天看| 亚洲天堂视频在线观看| 亚洲在线视频| 一级特黄录像免费看| 日本人体一区二区| 黄色a级片免费看| 国产视频一二三| 欧洲免费在线视频| 欧美成熟毛茸茸复古| 姑娘第5集在线观看免费好剧| 亚洲国产日韩欧美在线观看| 国产成人精品在线视频| 国产综合18久久久久久| 日韩—二三区免费观看av| 四虎影视精品成人| 亚洲香肠在线观看| 深夜福利一区二区| 九九热爱视频精品视频| 羞羞视频在线免费国产| 51精品秘密在线观看| 91嫩草在线播放| 久久久国产精品入口麻豆| 开心丁香婷婷深爱五月| 亚洲国产日日夜夜| 国产在线不卡一区二区三区| 国产主播喷水一区二区| 久久精品国产亚洲av无码娇色| 国产精品美女诱惑| 一级做a爰片久久毛片16| 欧美性极品xxxx娇小| 免费国产自线拍一欧美视频| 一区二区三欧美| 中文字幕视频免费观看| 久久黄色片视频| 国产精品第三页| av三级在线观看| 免费性色视频| 久久国产高清视频| 人体精品一二三区| 极品蜜桃臀肥臀-x88av| 男人的天堂网av| 亚洲精品高潮| 成人免费区一区二区三区| 岛国av一区二区| 亚洲国产伊人| 中文字幕精品一区二区精品| 久久aⅴ乱码一区二区三区| 伊人伊人av电影| а天堂中文最新一区二区三区| 日韩欧美大尺度| 日韩欧美中文字幕精品| 欧美日韩亚洲一区二区三区在线| 国产精品久久久久久久一区探花| 国产精品午夜一区二区三区| 天天看片天天操| 日韩欧美激情一区二区| 欧美岛国激情| 国产一级淫片a| 久久精品久久久久电影| 欧美日韩在线高清| 欧美一二三四五区| 天天综合天天添夜夜添狠狠添| 色婷婷色综合| 成人亚洲一区| 日本五十路在线| 欧美精美视频| 91九色综合久久| 大波视频国产精品久久| 亚洲精品国产综合区久久久久久久| 91网站在线看| 另类色图亚洲色图| 欧美丝袜美腿| 欧美精品在欧美一区二区少妇| 中文字幕中文字幕在线中高清免费版| 久草福利在线观看| 免费激情网址| av片中文字幕| 亚洲av综合一区| 成人免费福利在线| 国产精品69久久久久孕妇欧美| 涩涩网在线视频| 久久久av亚洲男天堂| 国产伦精品一区二区三区视频| 国产精品第二十页| 久久久亚洲人| 久久国产日韩欧美| 美女免费免费看网站| 中文字幕亚洲欧美在线不卡| 成人免费毛片嘿嘿连载视频| 欧美日韩国产精品一区二区三区| 嫩草影院入口一二三免费| 91九色蝌蚪成人| 另类小说综合欧美亚洲| 国产日韩综合av| 国内精品视频一区二区三区八戒| 成人18网址在线观看| 欧美在线观看18| 精品欧美一区二区久久久久| 亚洲+小说+欧美+激情+另类| 粉嫩久久99精品久久久久久夜| 人人做人人澡人人爽欧美| 人体私拍套图hdxxxx| 337p日本欧洲亚洲大胆张筱雨| 欧美成人做性视频在线播放| 国产在线观看免费视频软件| 亚洲女人天堂色在线7777| 日本黄色入口| 国产一二三四五| 中文字幕中文在线| 亚洲午夜高清视频| 久久艳片www.17c.com| 神马影院午夜我不卡影院| 中文字幕福利片| 影音先锋在线资源中文字幕| 欧美成欧美va| 欧美性xxxxxx| 欧美a级网站| 精品一区二区在线免费观看| 国精产品一区一区三区有限在线| 中文在线a√在线8| 中文字幕亚洲情99在线| 中文字幕视频免费观看| 国产精品美女久久久| 青青草视频国产| 成人写真视频| 国产精品v欧美精品v日韩| 亚洲成人av片在线观看| 欧美日韩国产一区精品一区| 国产精品中文字幕日韩精品| 中文字幕亚洲精品| 国产aⅴ爽av久久久久成人| 日韩精品123| 精品欧美一区二区在线观看| 精品久久久久久久久久久久久久久| 动漫一区在线| 久久久久久久久久久久久久| 精品一区二区三区不卡| 秋霞毛片大全| 亚洲伦理中文字幕| 成人国产电影网| 国产黄色精品网站| 成人免费网站www网站高清| 一色屋精品亚洲香蕉网站| 欧美一级特黄aaaaaa在线看片| 欧美性猛交xxxx乱大交hd| 国产在线视频不卡| jizzjizzjizzjizz| 噜噜噜久久,亚洲精品国产品| 国精产品一区二区三区有限公司| 国产乱子伦一区二区三区国色天香| 国产精品地址| 一本一生久久a久久精品综合蜜| 不卡一区中文字幕| 黄色免费视频观看| 黄色一级视频片| 青青青草视频| 欧美1区视频| 午夜精品一区| 1区2区3区在线观看| 久久久久亚洲精品一区二区三区| 亚洲欧洲av一区二区三区久久| 99久久婷婷国产综合精品首页| 国产午夜福利100集发布| 欧美精品国产白浆久久久久| 国产在线精品一区在线观看麻豆| 国产精品欧美一区二区三区不卡| 午夜羞羞小视频在线观看| 欧美色图亚洲视频| 九九精品调教| 美国毛片一区二区三区| 影音先锋中文字幕在线| 亚洲国产精品人人做人人爽| 黄色大秀av大片| 国产一区精品| 黄色大片在线看| 日韩av在线看免费观看| 免费h片在线| 欧美成人午夜激情视频| 国产精品麻豆99久久久久久| 人人香蕉久久| 国产高清免费av| 日韩mv欧美mv国产网站| 后进极品白嫩翘臀在线视频| 成人精品一二三区| 青青青手机在线视频| 男人插曲女人视频免费| 精品国产一区二区三区在线观看| 亚洲爆乳无码精品aaa片蜜桃| 国产欧美久久久久久久久| 国产精品三区www17con| 欧美日韩中文一区| 久久成人免费观看| 欧美一区二区三区在线视频| 国产女主播喷水视频在线观看| 娇妻被老王脔到高潮失禁视频| 欧美一区二区三区性视频| 日本在线免费网| 久久久久亚洲AV成人网人人小说| 99久久精品国产一区二区小说| 一区二区三区无码高清视频| 水莓100在线视频| 国产成人在线观看网站| 亚洲美女免费在线| 激情综合五月| 欧美三级韩国三级日本三斤| 九九久久精品一区| 国产亚洲欧美日韩精品一区二区三区| 成人免费视频77777| 免费电影一区二区三区| 99精品免费视频| 中文字幕一精品亚洲无线一区| 国产香蕉在线| 91网站黄www| 国产精品少妇在线视频| 欧美熟女一区二区| 91精品国产乱码久久久久| 性生交大片免费看l| 丝袜美腿一区| 99久久国产视频| 77成人影视| 国产又粗又长| 日韩成人免费在线视频| 欧美三级午夜理伦三级在线观看| 国产欧美精品xxxx另类| 欧美乱强性伦xxxxx| 日韩a级作爱片一二三区免费观看| 久久亚洲视频| 波多野结衣高清在线| 久久久性生活视频| 国产精品x8x8一区二区| www国产成人免费观看视频 深夜成人网| 久久久久久久久久免费视频| 色欧美日韩亚洲| 国产精品亚洲综合色区韩国| 久久国产精品亚洲人一区二区三区| 美女被艹视频网站| 精品一区二区精品| 国产美女视频免费观看下载软件| 国产av熟女一区二区三区| 国产综合av一区二区三区| 欧美精品电影在线| 国产精品任我爽爆在线播放| 亚洲视屏在线播放| 欧美午夜精品久久久久久浪潮| 成人黄色影视| 国产日产欧美a一级在线| 国内精品麻豆美女在线播放视频| 91久久久久久久久久久久| 久久精品女人天堂av免费观看| 一区二区三区四区高清视频| 欧美午夜性色大片在线观看| 成人性生交大片| 欧美性猛交xxxx黑人猛交| 久久99精品久久久久久| 人人澡人人澡人人看欧美| 欧美大片免费| 另类国产ts人妖高潮视频| 欧美日韩成人综合在线一区二区| 精品福利一区二区| 一区二区在线免费观看视频| 久久久久久亚洲精品中文字幕| 人妻互换一二三区激情视频| 第四色在线视频| 二区三区在线| 精品国产亚洲一区二区三区大结局| 好吊一区二区三区| 97精品伊人久久久大香线蕉|