国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ASP.NET讀取Excel中的數據轉存到數據庫中(改進版)

2019-11-06 06:09:19
字體:
來源:轉載
供稿:網友

上回說到讀取Excel表格的時候,讀取到的第一個表在實際運行中并不是Sheet1這個表,可能是一個中文表名,也可能是Sheet1。所以首先可以改進這個地方,代碼如下:

DataTable sheetsName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null,"Table"}); //得到所有sheet的名字                string firstSheetName=null;                for(int n=0;n<sheetsName.Rows.Count;n++)                    if(sheetsName.Rows[n][2].ToString()=="Sheet1$")                        firstSheetName = sheetsName.Rows[n][2].ToString(); //得到第一個sheet的名字我們可以用if來判斷找這個表名,這樣就可以節省部分時間和精力。

aspx頁面上,可以設置一個label標簽來顯示后臺處理過程中的提示信息。

后來出現了列數或者行數過多的情況,所以在處理數據的過程中,又對處理語句中進行了修改。根據上回的代碼,此次修改后的代碼如下所示:

            int i, j;            int region = 0;            //獲取作物ID值            cropnumber = int.Parse(CropID.Text.ToString());            //獲得更新數據庫類型            if (mianji.Checked == true)  //遇到播種面積時新增數據庫條目            {                if (exceldt.Rows.Count == 40&&exceldt.Columns.Count==60)                {                    for (i = 2; i < 40; i++)   //省份                    {                        if (i == 3 || i == 9 || i == 13 || i == 21 || i == 28 || i == 34)  //跳過空白區域                            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());                        float area = 0;                        for (j = 1; j < 60; j++)  //時間                        {                            if (exceldt.Rows[i][j].ToString() == "")                                area = 0;                            else                                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);                        }                    }                    InfoExcel.Text = "播種面積信息添加成功!";                }                else                { InfoExcel.Text = "Excel表格列數或者行數錯誤!行數為:"+exceldt.Rows.Count+",列數為:"+exceldt.Columns.Count; }            }此處可以首先對要處理的數據表進行列數與行數判斷。如果過多或者過少則不進行數據庫的添加或者修改,否則處理過程中發現問題則需要對數據庫再進行刪除操作,費時費力。

【發現的問題】在實際操作過程中,讀取的表格數據可能會出現空白換行或者其他字符的形式。而這里需要的是一個浮點數,于是處理過程中會報異常情況。這個地方的處理還是比較不太好處理的。有些單元格的數據為“.”或者“0.4.”,所以現在還是需要一個思路去處理類似于這樣的異常數據。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新竹市| 长沙县| 抚远县| 会昌县| 都江堰市| 金门县| 伊金霍洛旗| 泸西县| 天门市| 延长县| 滨海县| 宝丰县| 平邑县| 济源市| 长沙县| 威海市| 启东市| 康马县| 谷城县| 清新县| 广昌县| 武清区| 衡东县| 庄河市| 武隆县| 台东县| 宝鸡市| 石楼县| 越西县| 绥江县| 玉龙| 海丰县| 孟州市| 个旧市| 常宁市| 绥化市| 原阳县| 汪清县| 大丰市| 本溪市| 瑞丽市|