Office Open XML - 按其内容定位目标单元格

时间:2016-01-05 16:43:48

标签: c# .net xlsx

如果我使用Office Open XML了解其内容(xlsx文档中没有重复项),如何定位Cell?

我的意思是我有xlsx工作表(模板),并在其中的某处放置了我的“变量”。例如“<< _time>>”。我想找到那个元素(通过“变量”名称)并更改单元格值(在这种情况下是当前时间)。

基本代码:

        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();
        }

1 个答案:

答案 0 :(得分:0)

好的,我通过经典循环解决了它。

            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 = "..";
                    }
                }
            }