.txt文件内容需要复制到现有的Excel工作表而不删除其他工作表信息

时间:2015-07-06 11:42:15

标签: c# .net excel

我已经有名为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();

上面的代码删除了所有工作表,并将文本文件内容写入新工作表。

1 个答案:

答案 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?