我想在现有的csv文件中添加新工作表,但我不知道如何去做

时间:2015-06-16 14:22:05

标签: c#-4.0

我想在现有的csv文件中添加新工作表,但我不知道如何去做。我已经打开了.csv文件,我可以访问每个元素。所以我想在现有的.csv文件上创建一个新工作表,并使用上一个工作表中的数据填充单元格。

class Program
{
    static void Main(string[] args)
    {
        var reader = new StreamReader(File.OpenRead(@"C:\Users\Desktop\test.csv"));
        List<string> listA = new List<string>();
        List<string> listB = new List<string>();

        while (!reader.EndOfStream)
        {
            var line = reader.ReadLine();
            //line = line.Skip(1);
            var values = line.Split(',');

            listA.Add(values[0]);
            listB.Add(values[1]);
            listA.ForEach(Console.WriteLine);
            listB.ForEach(Console.WriteLine);        

            Console.ReadLine();    
        }
    }
}

1 个答案:

答案 0 :(得分:1)

我会发布这个作为答案,即使这是一种不答案。 CSV文件是以逗号分隔的简单平面文本文件。此文件类型没有更高级别的概念,例如工作表,单元格,工作簿或公式。

由于它们只是特殊格式的简单文本文件,因此没有工作表的概念。相反,您可以创建其他CSV文件并相应地命名文件。

如果要创建Excel文件,并拥有单独的工作表,可以使用各种库或COM Interops来执行此操作。

COM Interops用于本地直接连接到Excel。这是一个MSDN How-To for Excel。这允许您创建一个特殊对象,允许您使用Excel的API,即使它不是通过.NET Framework的托管API。

以下是有关如何在这种情况下添加工作表的示例:

Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();

if (xlApp == null)
{
    Console.WriteLine("EXCEL could not be started. Check that your office installation and project references are correct.");
    return;
}

xlApp.Visible = true;

Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); //adds worksheet to our workbook
Worksheet ws = (Worksheet)wb.Worksheets[1]; //access that worksheet linked into the workbook

if (ws == null)
{
    Console.WriteLine("Worksheet could not be created. Check that your office installation and project references are correct.");
}

另一种选择是使用Open XML SDK for Office,它可以用于新的Office格式(例如.xlsx)。就个人而言,我从未使用过这个库,但它类似于.NET Framework的Apache POI。