有没有办法使用 EPPlus 获得 'named' 个细胞?
Is there a way to get 'named' cells using EPPlus?
我有一个 Excel 文件,我正在使用 EPPlus 以编程方式填充它。
我试过以下方法:
// provides access to named ranges, does not appear to work with single cells
worksheet.Names["namedCell1"].Value = "abc123";
// provides access to cells by address
worksheet.Cells["namedCell1"].Value = "abc123";
以下确实有效 - 所以我知道我至少接近了。
worksheet.Cells["A1"].Value = "abc123";
实际上,这有点误导。命名范围存储在 workBOOK
级别而不是 workSHEET
级别。所以如果你这样做:
[TestMethod]
public void Get_Named_Range_Test()
{
//
var existingFile = new FileInfo(@"c:\temp\NamedRange.xlsx");
using (var pck = new ExcelPackage(existingFile))
{
var wb = pck.Workbook; //Not workSHEET
var namedCell1 = wb.Names["namedCell1"];
Console.WriteLine("{{\"before\": {0}}}", namedCell1.Value);
namedCell1.Value = "abc123";
Console.WriteLine("{{\"after\": {0}}}", namedCell1.Value);
}
}
你在输出中得到这个(使用一个包含虚拟数据的 excel 文件):
{"before": Range1 B2}
{"after": abc123}
我有一个 Excel 文件,我正在使用 EPPlus 以编程方式填充它。
我试过以下方法:
// provides access to named ranges, does not appear to work with single cells
worksheet.Names["namedCell1"].Value = "abc123";
// provides access to cells by address
worksheet.Cells["namedCell1"].Value = "abc123";
以下确实有效 - 所以我知道我至少接近了。
worksheet.Cells["A1"].Value = "abc123";
实际上,这有点误导。命名范围存储在 workBOOK
级别而不是 workSHEET
级别。所以如果你这样做:
[TestMethod]
public void Get_Named_Range_Test()
{
//
var existingFile = new FileInfo(@"c:\temp\NamedRange.xlsx");
using (var pck = new ExcelPackage(existingFile))
{
var wb = pck.Workbook; //Not workSHEET
var namedCell1 = wb.Names["namedCell1"];
Console.WriteLine("{{\"before\": {0}}}", namedCell1.Value);
namedCell1.Value = "abc123";
Console.WriteLine("{{\"after\": {0}}}", namedCell1.Value);
}
}
你在输出中得到这个(使用一个包含虚拟数据的 excel 文件):
{"before": Range1 B2}
{"after": abc123}