Office 打开 XML - 按内容定位单元格
Office Open XML - Target Cell by its content
如果我知道单元格的内容(xlsx 文档中没有重复项),如何使用 Office Open 定位单元格 XML?
我的意思是我有 xlsx sheet(模板)并在其中某处放置了我的 "variable"。例如“<<_time>>”。我想找到该元素(按 "variable" 名称)并更改单元格值(在本例中为当前时间)。
基本代码:
FileInfo newFile = new FileInfo(@"...");
FileInfo template = new FileInfo(@"...");
using (ExcelPackage xlPackage = new ExcelPackage(newFile, template))
{
ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets.First();
//need target Cell by it's value (must use for-loop?)
//worksheet.Cells[...].Value = "...";
xlPackage.Save();
}
好的,我用经典循环解决了
var start = worksheet.Dimension.Start;
var end = worksheet.Dimension.End;
for (int row = start.Row; row <= end.Row; row++)
{
for (int col = start.Column; col <= end.Column; col++)
{
string cellValue = worksheet.Cells[row, col].Text.ToString();
if (cellValue == "<<_time>>")
{
worksheet.Cells[row, col].Value = "..";
}
}
}
如果我知道单元格的内容(xlsx 文档中没有重复项),如何使用 Office Open 定位单元格 XML?
我的意思是我有 xlsx sheet(模板)并在其中某处放置了我的 "variable"。例如“<<_time>>”。我想找到该元素(按 "variable" 名称)并更改单元格值(在本例中为当前时间)。
基本代码:
FileInfo newFile = new FileInfo(@"...");
FileInfo template = new FileInfo(@"...");
using (ExcelPackage xlPackage = new ExcelPackage(newFile, template))
{
ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets.First();
//need target Cell by it's value (must use for-loop?)
//worksheet.Cells[...].Value = "...";
xlPackage.Save();
}
好的,我用经典循环解决了
var start = worksheet.Dimension.Start;
var end = worksheet.Dimension.End;
for (int row = start.Row; row <= end.Row; row++)
{
for (int col = start.Column; col <= end.Column; col++)
{
string cellValue = worksheet.Cells[row, col].Text.ToString();
if (cellValue == "<<_time>>")
{
worksheet.Cells[row, col].Value = "..";
}
}
}