2014-06-18 57 views
1

我使用TextFieldParser類來解析文件。如果「整列」是空的,我想消除或忽略整列(這意味着應該考慮一個特定行的單個空單元格)這是可能的嗎?CSV(或excel)解析;消除空列

注意:根據功能,我需要使用複製到剪貼板的數據。所以不能將直接文件路徑傳遞給解析器。

TextFieldParser parser = new TextFieldParser(new StringReader(row)); 
string[] delimiters = { ",", "\t" }; 
parser.SetDelimiters(delimiters); 
string[] columns = null; 
while (!parser.EndOfData) 
{ 
columns = parser.ReadFields(); 
} 

感謝您的幫助。

+0

我得到的英語可能是第二語言,但不清楚。 「這意味着一個特定行的單個空單元格應該被視爲」 – Paparazzi

+0

是您想要消除的列或行嗎? –

+0

*我想消除或忽略完整的列* – Sheridan

回答

2

通過閱讀MSDN上的TextFieldParser Class頁面,我發現沒有任何東西寫在那裏會讓我覺得這個類可以忽略整個列。這將是你必須手動完成的事情。此外,您的代碼似乎不正確,因爲您試圖使用相同的變量重複讀取字段:

while (!parser.EndOfData) 
{ 
    columns = parser.ReadFields(); 
} 
+0

有效的做法有什麼建議嗎? – Ujjwal

+0

是啊......把所有'string'數組放到'List '中,然後手動迭代每個數組,並將每個列值複製到一個較小數組中的列中。有很多不同的方法可以做到這一點,但在任何情況下,當您循環訪問每個數組時,您都必須編寫一些過程代碼。 – Sheridan