ClosedXml Excel 向行添加多个值

ClosedXml Excel Add multiple values to Rows

正在尝试将数组 string[] 中的值添加到 Excel 中的一行。 当我尝试使用 dt.Rows.Add(string[i]) 时,它被添加到 Excel sheet。问题是它是垂直添加的,这很明显,因为我只向该行添加一个项目,然后插入一个新行。我现在的问题是如何将 string[] 中的每一项添加到一行中,以便水平显示我的数据。

例如string[] values = {"a","b","c","d"}; 我现在的输出:
一个
b
c
d

我想要的输出: a b c d(每个在不同的单元格中)。

A1=一个 B1 = b ...

我已经能够向工作中添加列sheet,我只需要我的数据是正确的。 这是我现在的代码。

//Add columns
dt.Columns.AddRange(columns.Select(c => new DataColumn(c.ToString())).ToArray());
List<string> temp;
string[] values;
for (int i = 0; i < 7; i++)
{
    temp = new List<string>();
    temp.Add(timeStamps[i].ToString());
    foreach (var item in tagCollection)
    {
        if (timeStamps[i].Date == item.time)
        {
            temp.Add(item.min);
            temp.Add(item.max);
            temp.Add(item.avg);
        }    
    }
    int index = 0;
    values = new string[temp.Count];
        
    foreach (var item in temp)
    {
        values[index] = item;
        dt.Rows.Add(values[index]);
        index++;
    }
}

//Convert datatable to dataset and add it to the workbook as worksheet
ds.Tables.Add(dt);
workbook.Worksheets.Add(ds);

解决方案可能会经过以下步骤:

 string[] cars = { "Volvo", "BMW", "Mazda" };
 table.Rows.Add(cars[0].ToString(), cars[1].ToString(), cars[2].ToString()); 

输出:

只需要适配自己的代码即可。

您必须保证您的数据表具有在同一行中显示所有数据所需的列。如果您不这样做,肯定会产生矩阵错误。

这对我有用。我更改了 foreach 循环并发现有一个 NewRow() 方法。

int index = 0;
values = new string[temp.Count];
DataRow newRow;
newRow = dt.NewRow();

foreach (var item in temp) {
    values[index] = item;
    newRow.ItemArray = temp.Cast<object>().ToArray();
    index++;
}
dt.Rows.Add(newRow);