【问题标题】:Replace text in textbox in Excel using openXML使用openXML替换Excel文本框中的文本
【发布时间】:2017-05-23 16:10:27
【问题描述】:

我想编辑/更改文本框中的 Excel 工作表中的文本。我遍历了 sharedstringtable 中的所有条目,但我找不到它。

var sharedStringTablePart = spreadSheet.WorkbookPart.GetPartsOfType<SharedStringTablePart>().First();
foreach (SharedStringItem ss in sharedStringTablePart.SharedStringTable.Elements<SharedStringItem>())
{
    if (ss.InnerText == text)
    {
        //Do somethinhg
    }
}

有人可以帮忙吗?

【问题讨论】:

    标签: c# openxml


    【解决方案1】:

    文本框中包含的文本不存储在共享字符串表下(我知道这很混乱)。希望这会有所帮助:

    using (SpreadsheetDocument document = SpreadsheetDocument.Open(excelFile, true))
    {
        string sheetName = "Sheet1";
        Sheet sheet = document.WorkbookPart.Workbook.GetFirstChild<Sheets>().Elements<Sheet>().Where(s => s.Name == sheetName).FirstOrDefault();
    
        if (sheet == null)
        {
            // The specified worksheet does not exist.
            return null;
        }
    
        string relationshipId = sheet.Id.Value;
    
        WorksheetPart worksheetPart = (WorksheetPart)document.WorkbookPart.GetPartById(relationshipId);
        var ocaElems = worksheetPart.DrawingsPart.WorksheetDrawing.Elements<OneCellAnchor>();
    
        foreach (OneCellAnchor oneCellAnchor in ocaElems)
        {
            var shapes = oneCellAnchor.Elements<A.Shape>();
            foreach (var shape in shapes)
            {
                var text = shape.TextBody.InnerText;
                if(text == mytext)
                {
                    //You found the text
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-13
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多