Openxml открыть woorkbook с формулой показать сохранить изменения - PullRequest
0 голосов
/ 28 октября 2019

Я создал документ Excel с открытым XML и C #. Но когда я открываю этот файл и после его закрытия Excel показывает сообщение «Хотите сохранить изменения?»Да / Нет / Отмена.

Это происходит, когда я использую CellFormula.

Как сохранить «полный» документ XLSX с помощью Open XML? Я пытался использовать Workbook.CalculationProperties, но он не работает.

        string filename = @"D:\Visual Studio\My Data\Projects\Projects Manager App\Projects Manager App\bin\Debug\1.xlsx";
        System.IO.File.Delete(filename);
        SpreadsheetDocument document = SpreadsheetDocument.Create(filename, SpreadsheetDocumentType.Workbook);
        WorkbookPart workbookPart = document.AddWorkbookPart();
        workbookPart.Workbook = new Workbook();
        WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
        worksheetPart.Worksheet = new Worksheet(new SheetData());
        Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets());
        Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "lala"};
        sheets.Append(sheet);
        SheetData sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();
        uint ind = 1;
        Row row = new Row() { RowIndex = ind };
        sheetData.Append(row);
        Cell cell = new Cell() { CellValue = new CellValue("12"), DataType = CellValues.Number, CellReference = "B1" };
        row.Append(cell);
        cell= new Cell() { CellValue = new CellValue("12"), DataType = CellValues.Number, CellReference = "D1" };
        row.Append(cell);
        cell = new Cell() { CellFormula=new CellFormula("B1+D1"), DataType = CellValues.Number, CellReference = "E1" };
        row.Append(cell);
        worksheetPart.Worksheet.Save();
        workbookPart.Workbook.Save();
        document.Close();
        System.Diagnostics.Process.Start(filename);
...