将List <string>元素写入excel </string>

时间:2013-03-16 18:42:58

标签: c#

我只是使用一个简单的代码将字符串列表编写为excel,如下所示

        Excel.Application excelApp = new Excel.Application();
        string myPath = Environment.CurrentDirectory + path + "\\reselts.xlsx";
        excelApp.Workbooks.Open(myPath);

        List <string> allterms = new List<string>(alltext.Split(' '));

         allterms= allterms.Distinct().ToList();
        allterms.RemoveAll(String.IsNullOrEmpty);

        for (int i = 1; i < allterms.Count + 1; i++ )
        {

            excelApp.Cells[i, 1] = allterms[i];

        }
        excelApp.Visible = true;

但我收到错误“索引超出范围”!我的手术有什么问题?可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

allterms.CountList中的项目总数。您的循环正在尝试访问不存在的Count + 1

例如,假设allterms中有10个项目。总计数等于10,索引范围为0 - 9,即10项。你在for循环中所做的是访问索引范围1 - 10的项目,该项目正在跳过index 0处的项目并尝试访问index 10处的项目存在。

试试这个:

for (int i = 0; i < allterms.Count; i++ )
{
    excelApp.Cells[i + 1, 1] = allterms[i];
}

答案 1 :(得分:1)

在excel中,所有索引都是基于1的。在C#中,所有索引都是从0开始的。在您的代码中,您似乎使用基于1的访问模型:for excel和list。

另外,为了提高插入速度,最好设置范围值而不是每个单元格。您可以查看我在这里的示例:http://outcoldman.com/en/blog/show/201