2017-05-23 73 views
2

テキストボックスにあるExcelシートのテキストを編集/変更します。私は、共有ストリングテーブル内のすべてのエントリを反復処理しますが、私はそれを見つけることができません。openXMLを使用してExcelのテキストボックスのテキストを置き換えます。

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

誰かが助けることができますか?

答えて

2

テキストボックス内に含まれるテキストは、共有文字列の下に格納されません(私は混乱していると思います)。これが役に立てば幸いです:

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 
      } 
     } 
    } 
} 
+0

ありがとうございます –

関連する問題