999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

兩種非勻質Excel表轉換成關系數據庫表的方法

2020-05-21 03:33:01方木云趙長鮮張祝夢
軟件工程 2020年5期

方木云 趙長鮮 張祝夢

摘? 要:依據表中數據的特點,Excel表可以分為勻質和非勻質兩種類型,而關系數據庫表只有勻質一種類型,所以非勻質的Excel表數據不能直接導入到關系數據庫表中,需要進行表結構的勻質化轉換。為了解決這一問題,提出了兩種非勻質EXCEL表轉換成關系數據庫表的方法,實現了非勻質Excel表結構向關系數據庫表結構的轉換,并用C#編程實現了Excel表數據向關系數據庫表的自動導入。

關鍵詞:勻質Excel;非勻質Excel;關系數據庫

中圖分類號:TP311? ? ?文獻標識碼:A

Abstract: According to the characteristics of the data in the table, the Excel table can be divided into homogeneous and inhomogeneous types, while the relational database table has only one type, so the inhomogeneous Excel table data cannot be directly imported into the relational database table, and it is required to implement the homogenization transformation of the table structure. In order to solve this problem, the paper proposes two methods of transforming inhomogeneous Excel table into relational database table. The study achieve the transformation from inhomogeneous Excel table structure to relational database table structure, and the automatic import of Excel table data into relational database table in C# programming language.

Keywords: homogeneous excel; inhomogeneous excel; relational database

1? ?引言(Introduction)

Excel廣泛應用在日常辦公的數據處理中。Excel的一個突出特點是采用表格方式管理數據,所有的數據和信息都以工作表的二維表格形式管理,單元格中數據間的相互關系一目了然。很多信息系統早期都是使用Excel來進行管理,不少單位的財務系統甚至到現在還在使用Excel。隨著可視化編程語言和關系數據庫的出現,很多應用系統開始向C/S (Client/Server)和B/S (Browser/Server)模式的信息管理系統遷移,Excel系統逐漸被替代。盡管Excel表跟關系數據庫表一樣采用二維表管理數據,可是很多Excel表數據不能行列對應地轉換成關系數據庫表數據。如何將單位內部已經使用多年的各種Excel表結構快速有效地轉化成關系數據庫的表結構并實現數據自動導入是一個重要的應用問題[1-9]。

關系數據庫表只提供數據標準化管理,不提供自由編輯,其列數據類型約束強,一列只能全部填寫數字或者全部填寫文字;而Excel對列數據類型不強制約束,一列可以填寫數字、文字或為空。所以用戶經常隨心所欲地使用Excel表,這種用戶友好性導致表格數據多種多樣。

依據所存數據的特點,Excel表可以分為勻質和非勻質兩種類型。勻質的Excel表結構是指列的數據類型一致和列的數據行相等,如學生表、課程表、選課表等;非勻質的Excel表結構是指列的數據類型不一致或列的數據行不相等。勻質的Excel表結構可以行列對應地直接轉換成關系數據庫表結構;非勻質的Excel表結構不能直接轉換成關系數據庫表結構,所以需要進行勻質化轉換。

在實際開發中,由于缺乏經驗,很多開發者不區分勻質和非勻質Excel,直接將所有Excel表行列對應地直接映射到關系數據庫表。結果出現不少表格的數據不便于檢索和無法擴展,用戶數據需求一旦增加,軟件就無法使用,導致開發出來的系統是“僵尸”系統。所以需要提出一種非勻質Excel表轉換成關系數據庫表的方法。文獻[1]—文獻[7]開發了將Excel數據導入數據庫的工具,沒有區分不同的Excel,文獻[8]—文獻[9]考慮了Excel的不規則性,從而開發了一個導入工具。本文將Excel的不規則性區分為行非勻質和列非勻質的兩種Excel。

2? 非勻質Excel表的定義(Definition of non-homogeneous Excel tables)

關系數據庫表是強約束的,有如下特征:(1)一個表描述的是一個實體或者實體之間的一個聯系;(2)一個列描述一個屬性,也稱為字段,是存儲和檢索數據的關鍵;(3)每個列的數據類型是唯一的,如:只能是數值或者是文本,不能同時存數值和文本;(4)表的行數是相等的,也就是每個字段有相同的行值,允許有缺省值。Excel表是弱約束的,有如下特征:(1)一個表可以記錄任意一個實體和聯系;(2)一個單元格是存儲和檢索數據的關鍵;(3)一個列可以記錄不同類型的數據;(4)表的行可以長短不一致。

Excel表通過單元格進行數據的相對和絕對引用,通過VLOOK來查找和調用數據。關系數據庫表通過列使用SELECT結合WHERE條件來查找和調用數據。

完全不同于關系數據庫一個表只能記錄一個實體或聯系的數據,Excel表弱約束帶來的寬松和靈活性使得其得到廣泛應用,可以同時用來記錄結構化和非結構化的數據,可以記錄多個實體和聯系,導致表格可以分為勻質和非勻質兩種類型。

定義:當Excel表存儲結構化數據時,完全按照關系數據庫表模式來記錄數據的Excel表稱為勻質Excel表;凡是不按照關系數據庫表模式來記錄數據的Excel表稱為非勻質Excel表。其中,數據行不相等的Excel表稱為行非勻質Excel表;數據列類型不一致的Excel表稱為列非勻質Excel表。

結論:當Excel表存儲結構化數據時,所有非勻質Excel表都可以歸入行非勻質Excel表或者列非勻質Excel表,不存在行列同時不勻質的Excel表。

證明:一個正確表達結構化信息的Excel表是二維表,利用某一列或某一行來存儲某個屬性,其不勻質只能來自列或行,不能同時來自列和行,否則無法正確表達信息。

下面舉出幾個實例(如表1—表3所示),分別是勻質Excel表、行非勻質Excel表、列非勻質Excel表。

表1是勻質Excel表,其表結構和數據可以行列對應地直接導入到關系數據庫表當中;表2是行非勻質Excel表,行的長度不一致;表3是列非勻質Excel表,列的屬性不一致,列B既存了姓名這種文本型數據又存了年齡這種數字型數據。表2和表3的數據結構和值都不能行列對應地直接導入到關系數據庫表當中,需要進行勻質化轉換。

下面討論如何將行非勻質和列非勻質Excel表的數據結構轉換為關系數據庫表結構,并如何編程將對應數據導入到關系數據庫表中。

3 非勻質Excel表向數據庫表的轉換方法(Transformation method of non-uniform excel table to database table)

3.1? ?行非勻質的Excel轉換方法

針對表2這種行非勻質的Excel表,首先進行形式化描述:將Excel表中數據劃分為列字段的名稱和列字段的值兩個部分。Excel表中第一行數據為列字段的名稱,分別標識為F1,F2,...,Fn,其中n>1;Excel表中剩下的數據為列字段的值,分別標識為:

經過這樣的轉換后,數據存兩列,整個變勻質了。以表2為例,第一行的【建設投資成本,┄┄,股權出資單位】成為類別字段的值,【建設工程費用,┄┄,工程預備費用】隨著類別【建設投資成本】循環存,這樣數據就可以擴充了。

3.2? ?列非勻質的Excel轉換方法

針對表3這種列非勻質的Excel表,首先進行形式化描述:將Excel表劃分為列字段的名稱和列字段的值兩個部分,Excel表中第一列數據為列字段的名稱,分別標識為F1,F2,...,Fn,其中n>1;Excel表中剩余數據為列字段的值,分別標識為:

經過這樣的轉換后,整個表變勻質了,這樣數據就可以擴充了。通過SELECT結合WHERE條件來查找數據。列非勻質Excel表比行非勻質Excel表容易轉換,轉換前也容易理解,轉換時不需要另外建立字段名。行非勻質Excel表“欺騙性”比較強,沒有經驗的開發者,可能不進行轉換就直接行列對應地轉換成數據庫表,這樣的系統沒有擴展性,使用不方便。

4? 編程實現自動轉換結構和導入數據(Programming to achieve automatic transformation structure and import data)

提出了行非勻質Excel表和列非勻質Excel表向關系數據庫表轉換的方法之后,可以編程自動實現結構的轉換和數據的導入。下面分別給出兩個結構轉換和數據導入算法:

(1)行非勻質Excel表的轉換算法

Step1:利用Create table命令在數據庫中建立具有兩個字段TypeField和ContentField的表T1;

Step2:讀取Excel表,以F1至Fn作為外循環,以VF11至VF1x等作為內循環,將值循環填入到TypeField和ContentField兩個字段下面;

Step3:循環終止。

(2)列非勻質Excel表的轉換算法

Step1:讀取Excel表,以F1至Fn作為循環拼接字符串,利用Create table命令在數據庫中建立具有n個字段F1,...,Fn的表T1;

Step2:讀取Excel表,以F1,...,Fn作為讀取條件,循環將對應的值填入到其字段下面;

Step3:循環終止。

在PPP財務評價軟件中,利用C#編程,將兩種非勻質的Excel表成功的轉換到關系數據庫當中。下面以行非勻質的Excel表為例,針對表2的Excel表轉換結果如下:關系數據庫表結構如圖1所示,關系數據庫表記錄如圖2所示。

5? ?結論(Conclusion)

在實際應用當中,非勻質Excel表存在的原因有以下幾點:(1)數據的直觀性,表達方式比較直觀,便于使用者瞬間理解;(2)數據量不大,不需要擴充的時候,通過VLOOK來加工查找數據方便;(3)數據的原始生成者,沒有想到數據擴充的問題,因為Excel是按照文件來擴充數據的。

非勻質Excel表轉向關系數據庫的時候,不采用類似本文提出的轉換方法,如果都是行列對應直接導入,導致數據庫不能擴充,所作出來的軟件將會成為“僵尸”系統??雌饋砗芎?,但無法擴充。

將非勻質Excel表分為行非勻質和列非勻質兩種類型,并提出結構轉換和數據自動導入的方法,并利用C#編程實現,成功應用到PPP財務評價軟件系統的項目開發當中。

參考文獻(References)

[1] 陳小龍,陳綺璟.基于C#.NET實現Excel數據導入數據庫技術[J].計算機與網絡,2019,45(23):46-47.

[2] 周曉俊.ASP.NET中Excel數據處理的技術實現[J].信息與電腦(理論版),2018(06):113-115.

[3] 羅雅麗.關于大數據導入數據庫的方法探究[J].電腦編程技巧與維護,2019(08):111-113.

[4] 魏景東.將Excel表數據導入MS SQL Server數據庫表的一種有效方法[J].電腦編程技巧與維護,2013(07):53-56.

[5] 羅麗云,段艷萍,簡碧園.ASP.NET中導入Excel數據到數據庫的應用與實現[J].科技創新與應用,2015(29):89.

[6] 詹重詠.MySQL數據庫中數據導入與導出探析[J].數字技術與應用,2017(12):231;233.

[7] 陳道遠,孫兆輝.基于XML配置的Excel通用導入組件設計與應用[J].電腦編程技巧與維護,2019(08):99-100.

[8] 武彤,陸昱霖.基于XML映射模板實現不規則Excel數據的轉換[J].計算機技術與發展,2015,25(07):209-212.

[9] 張琦.基于.Net技術實現Excel數據抽取及批量入庫[J].電腦編程技巧與維護,2018(09):85-88.

主站蜘蛛池模板: 欧美精品H在线播放| 久久国产V一级毛多内射| 啪啪国产视频| 欧美在线导航| 国产网站免费看| 最新亚洲人成网站在线观看| 欧美日本中文| 国产成人凹凸视频在线| 色爽网免费视频| 国产激情在线视频| 久久夜夜视频| 日韩精品毛片人妻AV不卡| 天天干伊人| 伊人成人在线视频| 成人午夜在线播放| 欧美激情综合一区二区| 欧美在线伊人| 国产精品男人的天堂| 伊人婷婷色香五月综合缴缴情| 午夜不卡视频| 在线欧美a| 色悠久久综合| 欧美成人免费一区在线播放| 亚洲美女久久| 亚洲欧美成人综合| 国产SUV精品一区二区6| 亚洲日本精品一区二区| 9啪在线视频| 国产日韩精品一区在线不卡| 亚洲一区二区三区中文字幕5566| 青青草国产在线视频| 麻豆AV网站免费进入| 99激情网| 成人免费一级片| 狠狠ⅴ日韩v欧美v天堂| 成人另类稀缺在线观看| 国产精品视频导航| 日韩黄色在线| 精品国产香蕉在线播出| 狠狠色香婷婷久久亚洲精品| 在线免费看片a| 久久精品午夜视频| 国内精品一区二区在线观看| 国产精品视频猛进猛出| 性色在线视频精品| 婷婷亚洲最大| 欧美日本在线| 毛片网站观看| 99草精品视频| 国产精品中文免费福利| 91精品久久久久久无码人妻| 日本免费新一区视频| 欧美色视频日本| 欧美日本在线观看| 国产SUV精品一区二区6| 国产女人在线观看| 欧美一区二区福利视频| av天堂最新版在线| 91蜜芽尤物福利在线观看| 国产成人久久综合777777麻豆| 在线观看国产精品日本不卡网| 激情无码视频在线看| 国产噜噜噜| 国产国产人在线成免费视频狼人色| 国产女人综合久久精品视| 婷婷五月在线| 亚洲欧美精品一中文字幕| 成人国产精品一级毛片天堂 | 国产剧情伊人| 538国产视频| 少妇露出福利视频| 国产欧美日韩资源在线观看| 九九热免费在线视频| 亚亚洲乱码一二三四区| 乱系列中文字幕在线视频 | 青青操视频在线| 欧美va亚洲va香蕉在线| 欧美激情视频一区| 久久久久久午夜精品| 在线观看亚洲精品福利片| 日韩无码黄色| 免费在线a视频|