Я использую С# с openxml. Как удалить ячейку, содержащую формулу?C#

Место общения программистов C#
Ответить
Гость
 Я использую С# с openxml. Как удалить ячейку, содержащую формулу?

Сообщение Гость »

Я использую C# с openxml и Excel 2013. Я пытаюсь удалить ячейку, содержащую формулу. Я могу удалить ячейку без формулы, но когда я пытаюсь удалить ее с помощью формулы, файл Excel повреждается.
Чтобы дублировать ошибку, создайте файл Excel и установите для ячейки A1 значение «=» A2".
Выполните следующий код, и сохраненный файл Excel будет поврежден:
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
using System.Linq;

class Program
{
static void Main()
{
string filePath = "c:\\test\\test.xlsx";
string worksheetName = "Sheet1";

//get first row
SpreadsheetDocument spreadsheetdocument = SpreadsheetDocument.Open(filePath, true);
WorkbookPart workbookpart = spreadsheetdocument.WorkbookPart;
Sheet sheet = workbookpart.Workbook.Descendants().FirstOrDefault(s => s.Name == worksheetName);
WorksheetPart worksheetpart = (WorksheetPart)workbookpart.GetPartById(sheet.Id);
SheetData sheetdata = worksheetpart.Worksheet.Elements().FirstOrDefault();
Row row = sheetdata.Elements().FirstOrDefault(r => r.RowIndex == 1);

//get first cell
Cell cell = row.Elements().FirstOrDefault();

//delete cell
cell.Remove();

//save
worksheetpart.Worksheet.Save();
spreadsheetdocument.Save();

//dispose
spreadsheetdocument.Dispose();

}

}



Подробнее здесь: https://stackoverflow.com/questions/782 ... -a-formula
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»