作為一名程式設計師,我們可能很少使用Excel,但是公司的一些職能部門,比如HR,財務等,使用Excel真的是太熟練了,以至於一些系統開發出來,匯入和匯出功能是使用最頻繁的,哈哈。
其實在程式開發的過程中,有些場景,我們也可以藉助於Excel來大大的提升工作效率,比如以下場景:
- 業務給一批資料,需要你批量更新下資料庫
- 排查問題時,我們需要找出資料中的重複項
- 我們需要將一些內容按某個分隔符拆分成多列內容,以匹配不同的列
接下來,我們詳細講解下具體的操作細節。
1.拼接Sql字串
在做開發的過程中,經常需要根據Excel中的資料去資料庫查詢,少量資料還可以去複製貼上,大量資料時就需要將Excel中的資料拼接成自己需要的Sql,以提升工作效率。
1.1:將某一列拼接成Sql中的In條件
假設現在有如下的Excel資料,我需要從資料庫中查詢出這些門店的資料。
操作方法如下圖所示:
將生成的一列資料複製到Visual Studito Code中,進行替換即可
1.2:將某一列拼接成C#中的List
假設現在有如下的Excel資料,我需要將這些值寫在C#中的List中
操作方法如下圖所示:
將生成的一列資料複製到Visual Studito Code中,進行替換即可
1.3:拼接Sql語句
你想想,哪天你正在工作呢,業務扔過來一個Excel,你一臉懵逼,以下是你們的對話:
業務:幫我把系統裡的某個欄位改成Excel裡的可以嗎?我當時維護錯了
你:你可以在系統裡修改啊
業務:這麼多資料,你讓我一個一個改啊?而且很急,而且你還要考慮系統好用性,嘚吧嘚一大堆理由
你:內心深處,你是拒絕的,這明明是業務工作中的失誤,現在卻要你這個程式設計師來善後,事實上,你說:好的
既然答應了,就得想著咋處理,資料如果只有幾條,你複製貼上還可以,如果是成千上萬條呢,複製貼上肯定不現實,累死你不說,還容易出錯。
這時我們就可以藉助於Excel來快速的拼接Sql。
假如有如下的Sql語句,現需要將Where條件中的StoreCode的值替換為Excel中的值。
SELECT st.StoreCode ,
st.StoreName ,
s.SellerName ,
so.SellerOrgName
FROM dbo.Fct_Store AS st
INNER JOIN dbo.Fct_Seller AS s ON s.Disabled = 0
AND st.SellerCode = s.SellerCode
INNER JOIN dbo.Config_SellerOrg AS so ON so.Disabled = 0
AND s.SellerOrgCode = so.SellerOrgCode
WHERE st.Disabled = 0
AND st.StoreCode = '10000196';
複製程式碼
按照1.1和1.2中的方式,將Sql語句複製到Excel中,提示如下資訊(如果語句長度少的話,不會出現):
此時,就需要用到Excel中的**CONCATENATE()**函式,如下所示:
2.查詢重複項
在平時的開發工作中,我們有時會需要從Excel中查詢出重複的資料,以便清理業務資料。
假如現在有如下圖所示的文件,現需要找出**“店鋪編碼”**列的重複資料。
2.1新建規則
選中列“店鋪編碼”,然後依次點選選單:開始-->條件格式-->突出顯示單元格規則-->重複值
2.2設定重複值格式
在“重複值”彈出框中,按照預設的樣式點選確定,會發現重複項被標記出來
2.3篩選重複資料
點選選單:資料-->篩選,然後按照單元格顏色篩選,就可以只檢視重複的資料
篩選後的結果如下所示(只顯示了重複的資料,達到了我們的目的):
2.4清除規則
如果想恢復原來的資料,可以點選開始-->條件格式-->清除規則-->清除整個工作表的規則,清除掉該規則。
3.單元格內容拆分
一般情況下,開發在記錄一些日誌時,都會比較簡單,如:1274206,商品1274206已淘汰,但是發給到運營時,運營一般都關注的比較細,需要明確的表頭。
以下為程式中開發記錄的日誌:
但是發給運營時,運營需要明確的表頭,如:商品編碼,失敗原因
此時就需要將單元格的內容根據,拆分成多個單元格,操作步驟如下:
3.1.選中需要拆分的資料,點選資料--分列
3.2選中單元框:分隔符號,點選下一步
3.3分隔符號選中逗號,點選下一步,然後點選完成
此時會看到單元格的內容自動拆分成兩列,如下所示:
4.永久取消超連結
在使用Excel的過程中,Excel會自動將網址轉換為超連結,操作不當,容易誤點,引起不必要的錯誤。
那麼如何在Excel 2013裡永久取消超連結呢?
1.依次開啟選單檔案--選項,彈出Excel 選項彈出框
2.選中左側選單"校對",點選"自動更正選項"
3.取消勾選"Internet 及網路路徑替換為超連結"