將不規則Excel檔案資料寫入資料庫

2022-03-07 17:15:31 字數 2158 閱讀 3431

此次是要將以下excel檔案裡面的資料寫入火車訂票系統資料庫表裡面。那我們先來看看是什麼樣子的excel資料。

這個檔案裡面共有2個工作表,裡面的資料按上圖樣式排列。接下來看我們要匯入的資料庫表。

上圖有3張表,其中traintype為火車型別表,儲存的是火車的型別,比如普通車,動車組等。

traintrip儲存的是火車的車次,reachstation儲存的是火車的到達站點,由於起始站都是福州,

所以表暫且這麼設計了。

按照上圖excel的格式,如果按常規的資料來源來讀取資料肯定是行不通的,應該採用更靈活的方式來,

所以可以利用程式的迴圈來讀取每一單元格的資訊。通過網上的不斷尋找終於讓我找到乙個開源的讀取

那麼再開始我們的程式**之前先看看我們的程式介面吧。

該介面實現的是先上傳檔案,然後把檔案裡面的資料匯入到資料庫裡面,檔案的路徑暫且儲存到session裡面。

接下來就是**啦:

if (this.isvalid && txtcheckcode.text.tolower() == convert.tostring(session["checkcode"]).tolower())

// 新增資料到reachstation

for (int icol = 2; icol < sheet.columns; icol++)

datarow reachstationrow = reachstation.newrow();

reachstationrow["id"] = reachstationid++;

reachstationrow["name"] = sheet.getcell(icol, irow).contents;

reachstationrow["reachtime"] = sheet.getcell(icol, irow + 1).contents;

reachstationrow["hardseatprice"] = sheet.getcell(icol, irow + 2).contents;

reachstationrow["advanceprice"] = common.getadvanceprice(convert.todecimal(sheet.getcell(icol, irow + 2).contents));

reachstationrow["tripid"] = traintripid - 1;

reachstationrow["ticketcount"] = 0;

reachstation.rows.add(reachstationrow);}}

}sdatraintype.update(ds, "traintype");

sdatraintrip.update(ds, "traintrip");

sdareachstation.update(ds, "reachstation");

workbook.close();

lblmsg.text = "匯入資料成功!";}}

catch

}else

此次整個系統的製作需求一直再改,我是弄得筋疲力盡了。不過現在把一些感想記在此處。
首先資料庫的設計,如果涉及到資料庫匯入的話,應該考慮到表id是否要弄成非自增量,否則將給後面的開發造成一定的困難。
還有時間字段問題,如果時間為12:00並未有日期的話,涉及到資料庫匯出到excel應該設定為字串型別,而不是datetime型別。

整個系統資料庫設計到多個表資料刪除問題,應該考慮是否新增外來鍵約束,如果有外來鍵約束可能最終造成多個表因為互相關聯導致資料刪除

無法順利進行。

接著是程式的設計,記著不要一直追求**的最簡潔化,該多寫幾句還是得寫,不要怕重複,就像上面那段我把datatable更新到資料庫的

**,我一直想只用乙個sqldataadapter就做完所有的資料操作,我想該多寫幾個sqldataadapter還是得多寫的。以上純屬個人見解。

NIFI 檔案資料寫入hive

目的 nifi使用背景 希望借助nifi監控某個目錄,能夠將被監控目錄下的資料檔案採集並寫入hive中去。nifi提供了puthiveql puthivestreaming putsql三種processor,這三種processor對flowfile的要求也不盡相同。本文選用了如下圖1所示的幾種p...

php獲取excel檔案資料

很簡單就可以實現,下面為大家簡單介紹下 1 require dir phpexcel iofactory.php 23 phpreader new phpexcel reader excel2007 45 判斷檔案型別 6if phpreader canread filepath 13 14 15 ...

matlab寫入和讀取檔案資料

1 初始化乙個三維張量且值為0 b zeros 3,3,3 fid fopen d bookmark tags.txt 1 讀取前n行資料 c textscan fid,f f f n 2 從m 1行開始讀取n行 c textscan fid,f f f n,headerlines m 3 text...