3

Excel で特定のセルのテキストを取得できるコード (以下) がありますが、このテキストを変更してセルのテキストを変更する方法がわかりません。

public static void UpdateTextCell(string docName, string text, uint rowIndex, 
    string columnName, string sheetName)
{
   // Open the document for editing.
   using (SpreadsheetDocument spreadSheet = SpreadsheetDocument
       .Open(docName, true))
   {
        WorksheetPart worksheetPart = GetWorksheetPartByName(spreadSheet, 
            sheetName);

        if (worksheetPart != null)
        {

          SharedStringTablePart sharedstringtablepart=spreadSheet.WorkbookPart
              .GetPartsOfType<SharedStringTablePart>().First();
          SharedStringTable sharedStringTable = sharedstringtablepart
              .SharedStringTable;
          Cell cell = GetCell(worksheetPart.Worksheet, columnName, rowIndex);
          if (cell.DataType.Value == CellValues.SharedString)
          {
             var value = cell.InnerText;
             value = sharedStringTable.ElementAt(int.Parse(value)).InnerText;
             sharedStringTable.ElementAt(int.Parse(value)).InnerXml
                 .Replace("value", "Modified");
          }
          // Save the worksheet.
          worksheetPart.Worksheet.Save();
        }
   }
}

sharedStringTable.ElementAt(int.Parse(value)).InnerTextは読み取り専用なので、を使用してテキスト文字列を変更しようとしましsharedStringTable.ElementAt(int.Parse(value)).InnerXml.Replace("value", "Modified");たが、これも機能しません。

私が欠けているものを知っていますか?

4

3 に答える 3

2

追加してみる

sharedStringTable.Save();

sharedStringTable.ElementAt(int.Parse(value)).InnerXml
                 .Replace("value", "Modified");
于 2012-06-18T10:21:02.907 に答える