C# 如何用EPPLUS语法编写此Excel互操作语法
有人向我建议了一种方法,通过使用对象使代码更易于管理,从而改进代码:C# 如何用EPPLUS语法编写此Excel互操作语法,c#,excel,excel-interop,epplus,C#,Excel,Excel Interop,Epplus,有人向我建议了一种方法,通过使用对象使代码更易于管理,从而改进代码: string[,] values = new string[15, 35]; //or objects values[7, 7] = "2016"; values[7, 28] = drag24; values[7, 33] = drag25; values[10, 8] = digit1; values[10, 11] = digit2; // etc. Range range = WS.Range[WS.Cells[1
string[,] values = new string[15, 35]; //or objects
values[7, 7] = "2016";
values[7, 28] = drag24;
values[7, 33] = drag25;
values[10, 8] = digit1;
values[10, 11] = digit2;
// etc.
Range range = WS.Range[WS.Cells[1, 1], WS.Cells[15, 35]];
range.Value = values;
他的建议,但自从我从interop迁移到EPPLUS后,以下语法不再有效
Range range = WS.Range[WS.Cells[1, 1], WS.Cells[15, 35]];
在EPPLUS语法中,这种工作形式是什么样的
用这个替换它不合适,并替换了工作表中的所有内容:
ExcelRange range = WS.Cells["A1: AH106"]
也许是这样的
= sheet.Cells["A1:,12:12,14:14"]
不确定这是否正是您的意思,但下面是一个带有自定义对象和数组的简单示例:
IEnumerable<TestObject> objectList = new List<TestObject>()
{
{ new TestObject() {Id = 0, Name = "zero" } },
{ new TestObject() {Id = 1, Name = "one" } }
};
var values = new List<object[]>()
{
new string[] { "one", "two" },
new string[] { "three", "four" }
};
using (var package = new ExcelPackage())
{
var sheet = package.Workbook.Worksheets.Add("Sheet1");
// note second parameter gives you headings
sheet.Cells["A1"].LoadFromCollection<TestObject>(objectList, true);
sheet.Cells["A4"].LoadFromArrays(values);
File.WriteAllBytes(OUTPUT, package.GetAsByteArray());
}
测试对象:
class TestObject
{
public int Id { get; set; }
public string Name { get; set; }
}
使用自定义对象和数组填充图纸:
IEnumerable<TestObject> objectList = new List<TestObject>()
{
{ new TestObject() {Id = 0, Name = "zero" } },
{ new TestObject() {Id = 1, Name = "one" } }
};
var values = new List<object[]>()
{
new string[] { "one", "two" },
new string[] { "three", "four" }
};
using (var package = new ExcelPackage())
{
var sheet = package.Workbook.Worksheets.Add("Sheet1");
// note second parameter gives you headings
sheet.Cells["A1"].LoadFromCollection<TestObject>(objectList, true);
sheet.Cells["A4"].LoadFromArrays(values);
File.WriteAllBytes(OUTPUT, package.GetAsByteArray());
}
IEnumerable objectList=新列表()
{
{new TestObject(){Id=0,Name=“zero”},
{new TestObject(){Id=1,Name=“one”}
};
var值=新列表()
{
新字符串[]{“一”,“二”},
新字符串[]{“三”,“四”}
};
使用(var package=new ExcelPackage())
{
var sheet=package.工作簿.Worksheets.Add(“Sheet1”);
//注意,第二个参数为您提供标题
sheet.Cells[“A1”].LoadFromCollection(objectList,true);
sheet.Cells[“A4”].LoadFromArray(值);
File.writealBytes(输出,package.GetAsByteArray());
}
不确定这是否正是您的意思,但下面是一个带有自定义对象和数组的简单示例:
IEnumerable<TestObject> objectList = new List<TestObject>()
{
{ new TestObject() {Id = 0, Name = "zero" } },
{ new TestObject() {Id = 1, Name = "one" } }
};
var values = new List<object[]>()
{
new string[] { "one", "two" },
new string[] { "three", "four" }
};
using (var package = new ExcelPackage())
{
var sheet = package.Workbook.Worksheets.Add("Sheet1");
// note second parameter gives you headings
sheet.Cells["A1"].LoadFromCollection<TestObject>(objectList, true);
sheet.Cells["A4"].LoadFromArrays(values);
File.WriteAllBytes(OUTPUT, package.GetAsByteArray());
}
测试对象:
class TestObject
{
public int Id { get; set; }
public string Name { get; set; }
}
使用自定义对象和数组填充图纸:
IEnumerable<TestObject> objectList = new List<TestObject>()
{
{ new TestObject() {Id = 0, Name = "zero" } },
{ new TestObject() {Id = 1, Name = "one" } }
};
var values = new List<object[]>()
{
new string[] { "one", "two" },
new string[] { "three", "four" }
};
using (var package = new ExcelPackage())
{
var sheet = package.Workbook.Worksheets.Add("Sheet1");
// note second parameter gives you headings
sheet.Cells["A1"].LoadFromCollection<TestObject>(objectList, true);
sheet.Cells["A4"].LoadFromArrays(values);
File.WriteAllBytes(OUTPUT, package.GetAsByteArray());
}
IEnumerable objectList=新列表()
{
{new TestObject(){Id=0,Name=“zero”},
{new TestObject(){Id=1,Name=“one”}
};
var值=新列表()
{
新字符串[]{“一”,“二”},
新字符串[]{“三”,“四”}
};
使用(var package=new ExcelPackage())
{
var sheet=package.工作簿.Worksheets.Add(“Sheet1”);
//注意,第二个参数为您提供标题
sheet.Cells[“A1”].LoadFromCollection(objectList,true);
sheet.Cells[“A4”].LoadFromArray(值);
File.writealBytes(输出,package.GetAsByteArray());
}
我确实读过这篇文章,它看起来确实是我想要的,但我不熟悉Linq之外的IEnumerable函数。很清楚它是做什么的,虽然你写它的方式,我会给它一个机会,看看会发生什么。我确实读过这篇文章,它看起来确实是我想要的,但我不熟悉Linq之外的IEnumerable函数。很清楚它是怎么做的,尽管您编写它的方式不同,但我会尝试一下,看看会发生什么。如果您想使用EPPlulLoadFrom*
方法,使用2D字符串数组将使事情变得更加困难。最好是收集一些收藏品。但是,如果您必须保持当前结构,只需自己循环使用它们,这将更有效。如果您想使用EPPlulLoadFrom*
方法,使用2D字符串数组将使事情变得更加困难。最好是收集一些收藏品。但是,如果你必须保持目前的结构,你只需要自己循环一下,这样会更有效率。