2012-02-22 71 views
0

有什麼辦法可以將不同的多個.txt文件(實際上是一個文件夾中所有.txt文件的內容)的內容放入Excel 2010中?我需要一個單元格(A1)作爲該文件的名稱,另一個單元格(A2)作爲該.txt文件的整個內容。其他.txt文件也是如此,即B1-B2,C1-C2等。將多個.txt文件的內容放入Excel 2010

在此先感謝。

+0

看看[這裏](http://stackoverflow.com/questions/4937664/can-i-import-multiple-text-files-into-one-excel-sheet) – Raystafarian 2012-02-22 20:46:52

回答

1

如果CSV是可以接受的,你可以寫一個小程序來閱讀所有文本文件在指定目錄下,並寫出你在CSV格式需要的數據:

"File Name 1","Contents of File 1" 
"File Name 2","Contents of File 2" 

如果打開CSV中Excel中,數據將按照您指定的方式顯示。

如果您必須具有真正的Excel文件(.xls,.xlsx),則可以使用Interop從C#訪問Excel庫,但此解決方案稍微複雜一些。

http://msdn.microsoft.com/en-us/library/ms173186(v=vs.80).aspx

您可以使用Directory.EnumerateFiles列出所有需要的文件夾中的文件名,並File.ReadAllText在每個文件的內容閱讀。

使用CSV文件時,圍繞輸出的正確引用存在一些細微差別(請參閱我的答案開始處的維基百科鏈接)。我寫了一個小extension method,以使其更容易輸出正確引用CSV:

static public class Extensions 
    { 
     static public string CsvQuote(this string text) 
     { 
      if (text == null) 
      { 
       return string.Empty; 
      } 

      bool containsQuote = false; 
      bool containsComma = false; 
      int len = text.Length; 
      for (int i = 0; i < len && (containsComma == false || containsQuote == false); i++) 
      { 
       char ch = text[i]; 
       if (ch == '"') 
       { 
        containsQuote = true; 
       } 
       else if (ch == ',') 
       { 
        containsComma = true; 
       } 
      } 

      bool mustQuote = containsComma || containsQuote; 

      if (containsQuote) 
      { 
       text = text.Replace("\"", "\"\""); 
      } 

      if (mustQuote) 
      { 
       return "\"" + text + "\""; // Quote the cell and replace embedded quotes with double-quote 
      } 
      else 
      { 
       return text; 
      } 
     } 

    } 

編輯:

關閉我的頭頂部(不調試或任何東西),代碼寫出來的CSV可以看看是這樣的:

​​
+0

Yeap,.csv被接受,所以我可能會這樣做,即將所有文件名和它們的內容放入.csv文件中。無論如何,你能否詳細解釋一下我如何做到這一點? :)我對此很陌生,所以簡單的解釋就完美了。提前致謝。 – 2012-02-22 20:59:57

+1

更新了遍歷文件的示例代碼。您需要根據需要進行調試和修改。 – 2012-02-22 23:25:21

相關問題