有什麼辦法可以將不同的多個.txt文件(實際上是一個文件夾中所有.txt文件的內容)的內容放入Excel 2010中?我需要一個單元格(A1)作爲該文件的名稱,另一個單元格(A2)作爲該.txt文件的整個內容。其他.txt文件也是如此,即B1-B2,C1-C2等。將多個.txt文件的內容放入Excel 2010
在此先感謝。
有什麼辦法可以將不同的多個.txt文件(實際上是一個文件夾中所有.txt文件的內容)的內容放入Excel 2010中?我需要一個單元格(A1)作爲該文件的名稱,另一個單元格(A2)作爲該.txt文件的整個內容。其他.txt文件也是如此,即B1-B2,C1-C2等。將多個.txt文件的內容放入Excel 2010
在此先感謝。
如果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可以看看是這樣的:
Yeap,.csv被接受,所以我可能會這樣做,即將所有文件名和它們的內容放入.csv文件中。無論如何,你能否詳細解釋一下我如何做到這一點? :)我對此很陌生,所以簡單的解釋就完美了。提前致謝。 – 2012-02-22 20:59:57
更新了遍歷文件的示例代碼。您需要根據需要進行調試和修改。 – 2012-02-22 23:25:21
看看[這裏](http://stackoverflow.com/questions/4937664/can-i-import-multiple-text-files-into-one-excel-sheet) – Raystafarian 2012-02-22 20:46:52