[問題] 如何讀這種格式的Excel進去SQL server

看板C_Sharp (C#)作者 (azzc1031)時間3年前 (2020/07/31 16:00), 3年前編輯推噓1(1020)
留言21則, 5人參與, 3年前最新討論串1/1
小弟數據分析師一枚 工作上常需要把散落各地的Excel讀進SQL server 不過這次的格式實在太魔幻了,實在很頭痛 如下: https://i.imgur.com/Rk3ly4V.jpg
每顆主料號底下都有數量不一的子料號 一個Excel檔的主料號有上千個 我要讀的Excel檔約有十來個 我的目標要存成這樣: https://i.imgur.com/WHtZKu8.jpg
目前我是寫雙for迴圈 外迴圈讀a,b欄,內迴圈讀b,c欄。 若外迴圈遇到A欄的string非”主料號”時,則continue。 進來內迴圈後 內迴圈初始值為Find.(“子料號”).row +1 只要遇到b欄為null值則break。 但我這樣寫會變成這三顆主料號都會帶到 皮卡丘、傑尼龜、小火龍、妙蛙種子 這四顆子料號 因為系統默認 Find.(“子料號”).row 是第四列 所以內迴圈實際上只在row5~row8跑 是不是不用寫那麼複雜的雙for迴圈? 有高手可以救救我嗎QQ 感謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.215.145.175 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1596182446.A.85D.html

07/31 16:05, 3年前 , 1F
不太懂你遇到的困難點是什麼?看起來不至於無法處理
07/31 16:05, 1F

07/31 16:14, 3年前 , 2F
看起來先用空白行當切割條件切出每個主料號
07/31 16:14, 2F

07/31 16:15, 3年前 , 3F
切完出來的資料就有規律可以去拆解成兩塊了吧
07/31 16:15, 3F

07/31 16:17, 3年前 , 4F
發現該 ROW A欄 = 主料號,就取B欄值為主料號
07/31 16:17, 4F

07/31 16:18, 3年前 , 5F
再往下找 A欄 = 子料號描述 的 ROW + 1一直爬到結束
07/31 16:18, 5F

07/31 16:21, 3年前 , 6F
逐行讀 ROW 去處理應該也沒啥問題,主料號之間都有空白行
07/31 16:21, 6F

07/31 16:23, 3年前 , 7F
資料庫正規化研究一下 不過我會直接用xml欄位
07/31 16:23, 7F

07/31 17:28, 3年前 , 8F
/*我是原po*/ ,目前我是寫雙迴圈,外迴圈讀a,b欄,內迴
07/31 17:28, 8F

07/31 17:28, 3年前 , 9F
圈讀b,c欄。if外迴圈遇到A欄的string非”主料號”時,則
07/31 17:28, 9F

07/31 17:28, 3年前 , 10F
continue。進來內迴圈後,內迴圈初始值為”子料號”+1 r
07/31 17:28, 10F

07/31 17:28, 3年前 , 11F
ow,只要遇到b欄為null值則break。但我這樣寫會變成這三
07/31 17:28, 11F

07/31 17:28, 3年前 , 12F
顆主料號都會帶到皮卡丘、傑尼龜、小火龍、妙蛙種子。是
07/31 17:28, 12F

07/31 17:28, 3年前 , 13F
不是不用寫那麼複雜的雙迴圈?
07/31 17:28, 13F

07/31 17:30, 3年前 , 14F
雙層while loop,
07/31 17:30, 14F

07/31 17:30, 3年前 , 15F
第一層切出每筆料號,第二層處理各筆料號內容
07/31 17:30, 15F

07/31 17:30, 3年前 , 16F
這樣設計以後你每筆內容增加也比較好改
07/31 17:30, 16F
※ 編輯: azzc1031 (49.215.145.175 臺灣), 07/31/2020 17:58:18 ※ 編輯: azzc1031 (49.215.145.175 臺灣), 07/31/2020 18:11:25 ※ 編輯: azzc1031 (49.215.145.175 臺灣), 07/31/2020 18:12:43 ※ 編輯: azzc1031 (49.215.145.175 臺灣), 07/31/2020 18:20:19

07/31 18:49, 3年前 , 17F

07/31 18:50, 3年前 , 18F
大概這樣吧,不過 Skip 跟 Split 目前寫死,視情況改囉
07/31 18:50, 18F

07/31 19:08, 3年前 , 19F
嗚嗚樓上太用心了,請受小弟一拜QQ 感謝!
07/31 19:08, 19F

07/31 19:18, 3年前 , 20F

07/31 19:19, 3年前 , 21F
我有安裝 LinqToExcel 套件就是
07/31 19:19, 21F
文章代碼(AID): #1V8y-kXT (C_Sharp)
文章代碼(AID): #1V8y-kXT (C_Sharp)