尝试使用ExcelRange和LoadFromCollection使用EPPLUS将列表或数组添加到excel中的行,但是填充的是列而不是一行。代码:
List<string> cabeceras = new List<string>();
cabeceras.Add("Fecha");
foreach (ValidationParameterData estacion in informacionSeleccion.Parameters) {
foreach (string parameter in estacion.Parameters) {
cabeceras.Add(estacion.Station + parameter);
cabeceras.Add("L");
}
}
string[] vals = cabeceras.ToArray();
using (ExcelRange rng = ws.Cells[4,1,4,cabeceras.Count])
{
rng.Style.Font.Size = 16;
rng.Style.Font.Bold = true;
rng.LoadFromCollection(vals);//or cabeceras directly
}
同时尝试使用数组和列表:
ExcelRange rng = ws.Cells["A4:M4"]
同样的事情发生了,A列从上到下填充而不是从左到右填充行,我做错了什么?还有其他功能吗?
谢谢和问候
答案 0 :(得分:1)
以下是我解决问题的方法。请参阅此代码的下方,了解我的试验和磨难,请参阅Range类。
using System;
using OfficeOpenXml;
using System.Collections.Generic;
using System.IO;
namespace eeplusPractice
{
class Program
{
static void Main(string[] args)
{
FileInfo newFile = new FileInfo(@"C:\Users\Evan\Desktop\new.xlsx");
ExcelPackage pkg = new ExcelPackage(newFile);
ExcelWorksheet wrksheet = pkg.Workbook.Worksheets[0];
List<string> cabeceras = new List<string>();
for (int x = 1; x < 5; x++)
{
cabeceras.Add("HELLO");
}
int row = 4;
for(int col = 1; col <= cabeceras.Count; col++)
{
int counter = col;
wrksheet.Cells[row, col].Value = cabeceras[counter];
}
pkg.Save();
}
}
}
我尝试使用foreach循环遍历rng对象,但只有一个类能够运行,并且与上面遇到的问题相同。它不能将范围内的每个单元格视为可以访问的不同对象。方法
如果我有时间,我可以写一个方法LoadRangeHorizontal,但是现在up应该可以正常工作。
GL lemme知道它是否有效。