简体   繁体   English

Office Open XML-目标单元格的内容

[英]Office Open XML - Target Cell by its content

How to target Cell if I know its content (there are no duplicates in the xlsx document) using Office Open XML? 如果我使用Office Open XML知道Cell的内容(xlsx文档中没有重复项),该如何定位Cell?

I mean I have xlsx sheet (template) and somewhere in it placed my "variable". 我的意思是我有xlsx工作表(模板),并在其中放置了“变量”。 For example "<<_time>>". 例如“ << _ time >>”。 I want to find that element (by "variable" name) and change the cell value (current time in this case). 我想找到该元素(通过“变量”名称)并更改单元格值(在这种情况下为当前时间)。

Basic code: 基本代码:

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

Ok, I solved it by classic loop. 好的,我通过经典循环解决了它。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM