我已经有名为test.xls的excel表,它有3个工作表(Files1,Files2和Results)。现在我需要复制文本文件内容并将其写入“结果”工作表。
以下是我参与的C#代码。
System.IO.StreamReader file = new System.IO.StreamReader("D:\\test.txt");
string line = "";
int counter = 0;
while ((line = file.ReadLine()) != null)
{
if (counter == 0)
{
lstColumnNames.AddRange(line.Split(' '));
}
else
{
List<string> tempRowData = new List<string>();
tempRowData.AddRange(line.Split(' '));
lstRowData.Add(tempRowData);
}
counter++;
}
System.IO.TextWriter tw = new System.IO.StreamWriter("D:\\test.xlsx");
if (lstColumnNames.Count != 0)
{
string temp = "";
foreach (string str in lstColumnNames)
{
if (temp != "")
{
temp += ";";
}
temp += str;
}
tw.WriteLine(temp);
foreach (List<string> lstRow in lstRowData)
{
temp = "";
foreach (string str in lstRow)
{
if (temp != "")
{
temp += ";";
}
temp += str;
}
tw.WriteLine(temp);
}
tw.Close();
上面的代码删除了所有工作表,并将文本文件内容写入新工作表。
答案 0 :(得分:0)
它会覆盖当前内容,因为您错过了StreamWriter
的重载。如果您通过true
,则会将StreamWriter
置于Append
模式。
... new StreamWriter(@"C:\MyFile.xlsx", true);
我不建议尝试以这种方式操作Excel。有一个适当的工具称为Excel Interop
,它可以让你做你想做的事。这方面有很多关于读/写数据的教程,这里有一些我发现的:
MSDN - Use COM Interop to Create an Excel Spreadsheet
DotNetPerls Excel Interop
CSharp.NET - How to open an Excel file in C#
CodeProject - Faster Excel Reading using Interop
关于如何在使用Excel Interop时自行整理的一些好的阅读: How do I properly clean up Excel interop objects?