我已經承接了一個最近需要過濾Excel文件表格內容的小項目。我打算在這個項目中使用C#和EPPLUS,並將輸入的Excel錶轉換爲Datatable來處理所有的數據查詢。在C#中解釋Excel文件
但是,我從客戶端獲得的Excel文件是可疑的格式,其中表格遍佈表格中的填充描述和空格之間的空白處。每個Excel文件似乎有自己的安排數據量太大,下面是什麼我迄今所看到的舉例:
我只是做了一些嘗試與轉換Excel表到C#,但從目前爲止我所見過的系統基本上是從單元格A1開始迭代逐行數據。有沒有辦法在這個迭代過程中檢測表格,並將它們與標題/描述/空行分開?我想簡單地檢查表格邊框以確定是否有表格,但是對於方案D,某些Excel文件甚至沒有設置表格邊框。
我計劃通知客戶這個,所以我們可以就Excel文件的標準格式達成一致,但這是我第一個處理解釋Excel文件的項目,所以我也有一個小的元問題:這是否是正確的要做的事?我假設這些不同的Excel格式可能是由於業務選擇(即來自不同部門),因此對於過去遇到過這類問題的人來說,說服客戶改變他們當前的方法是一種常態或者我應該跟他們目前的工作一起工作?
我不認爲客戶會接受這個答案。我會將表格導出爲CSV,然後將CSV導入到c#中。您可以編寫VBA宏來幫助您將表格保存爲CSV。 – jdweng
您可以從C#訪問Excel對象模型,因此可以編寫一些邏輯來標識各種類型的表,如果只有合理數量的偏離您的預期偏差(例如,如果IsNumeric(範圍(「A1」)必須是表格單元格不是頭文件等),只是在網上搜索它,但它真的是讓客戶把他們的文檔變成可解析的格式(除非你希望他們繼續僱用你來解決混亂問題!!) – Absinthe