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.

主站蜘蛛池模板: 中文字幕亚洲乱码熟女1区2区| 青青国产视频| AV不卡在线永久免费观看| 国产成人精品午夜视频'| 麻豆国产在线观看一区二区| 亚洲欧美另类中文字幕| 久久中文字幕2021精品| 丁香五月激情图片| 日韩一级毛一欧美一国产| 精品国产自在现线看久久| 精品综合久久久久久97| 2021国产精品自拍| 久久网综合| 国产成人在线小视频| 天天综合网色中文字幕| 国产精品视频第一专区| 国产人妖视频一区在线观看| 被公侵犯人妻少妇一区二区三区| 狠狠v日韩v欧美v| 呦女亚洲一区精品| 视频在线观看一区二区| 久久久久国色AV免费观看性色| 免费一级毛片完整版在线看| 亚洲精品男人天堂| 成人在线观看一区| 国产99在线| 99国产精品免费观看视频| 欧美三级自拍| 经典三级久久| 亚洲国语自产一区第二页| 亚洲视频四区| 美女黄网十八禁免费看| 欧美精品啪啪一区二区三区| 一本大道在线一本久道| 亚洲浓毛av| 丝袜无码一区二区三区| 亚洲无线视频| 国产另类乱子伦精品免费女| 亚洲色成人www在线观看| 免费午夜无码18禁无码影院| 午夜福利在线观看入口| 亚洲成人播放| 日韩欧美国产三级| 97在线国产视频| 91在线无码精品秘九色APP| 91美女视频在线| 久久这里只有精品国产99| 亚洲色图另类| 国产91丝袜在线播放动漫 | 国产美女久久久久不卡| 国产资源免费观看| 超清无码熟妇人妻AV在线绿巨人| 51国产偷自视频区视频手机观看| 久久亚洲中文字幕精品一区| 夜色爽爽影院18禁妓女影院| 亚洲男人天堂久久| 国产一区二区精品高清在线观看 | av手机版在线播放| 在线毛片免费| 伊人久久久久久久| 日韩黄色大片免费看| 国产精品手机在线播放| 久久天天躁狠狠躁夜夜2020一| 2022国产无码在线| 国产精品爽爽va在线无码观看| 真实国产乱子伦视频| 九九热精品在线视频| 亚洲91在线精品| 精品国产一区二区三区在线观看 | 高清色本在线www| 久久伊人操| 中国精品久久| 狠狠久久综合伊人不卡| 国产福利免费观看| 国产高清免费午夜在线视频| 中文字幕色站| 国产乱码精品一区二区三区中文| 国产手机在线观看| 青青青草国产| 国产亚洲现在一区二区中文| 国产精品久久国产精麻豆99网站| 色婷婷成人|