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

本文关键字:定位 单元格 Open XML- Office | 更新日期: 2023-09-27 18:29:06

如果我使用Office Open XML知道Cell的内容(xlsx文档中没有重复项),如何将其作为目标?

我的意思是我有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();
        }

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

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

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