使用 EPPLUS 将带有 LoadFromCollection 的列表或数组添加到行范围
Add List or array with LoadFromCollection to row range using EPPLUS
尝试使用 EPPLUS 使用 ExcelRange 和 LoadFromCollection 将列表或数组添加到 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 列是从上到下填充而不是从左到右填充行,我做错了什么?还有其他功能吗?
感谢和问候
这是我解决问题的方法。请参阅此代码下方,了解我在 class 范围内的考验和磨难。
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 对象,但只有一个 class 能够 运行,这与您在上面遇到的问题相同。它不得将范围内的每个单元格视为可以访问的不同对象。方法
如果我有时间,我可能会写一个方法 LoadRangeHorizontal,但现在 up top 应该可以正常工作。
GL 让我知道它是否有效。
尝试使用 EPPLUS 使用 ExcelRange 和 LoadFromCollection 将列表或数组添加到 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 列是从上到下填充而不是从左到右填充行,我做错了什么?还有其他功能吗?
感谢和问候
这是我解决问题的方法。请参阅此代码下方,了解我在 class 范围内的考验和磨难。
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 对象,但只有一个 class 能够 运行,这与您在上面遇到的问题相同。它不得将范围内的每个单元格视为可以访问的不同对象。方法
如果我有时间,我可能会写一个方法 LoadRangeHorizontal,但现在 up top 应该可以正常工作。
GL 让我知道它是否有效。