2017-05-23 1 views
2

텍스트 상자에있는 Excel 시트의 텍스트를 편집/변경하고 싶습니다. 내가 sharedstring 테이블에있는 모든 항목을 반복하지만 찾을 수 없습니다.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

고맙습니다. –

관련 문제