作為一名程序員,我們可能很少使用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 及網絡路徑替換為超鏈接"