none
Excel openxml созданный файл с формулами при закрытии требует сохранения RRS feed

  • Общие обсуждения

  • Здравствуйте.

    Создаю файл xlsx с помощью c# openxml. После открываю файл и ничего не меняя, закрываю его. Если в этом файле есть формулы, то при закрытии Excel выдает сообщение "Сохранить изменения?".

    Соответственно вопрос, как "полностью" сохранить Excel документ, чтобы это сообщение не появлялось, если я ничего в файле не менял?

    Заранее, благодарен.

    public static void Start()
            {
                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>();
                MergeCells mergeCells = new MergeCells();
                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")  , CellValue=new CellValue("24"), CellReference = "E1" };
                row.Append(cell);
                CalculationChainPart calcChainPart= workbookPart.AddNewPart<CalculationChainPart>();
                CalculationChain calcChain= calcChainPart.CalculationChain = new CalculationChain();
                CalculationCell calcCell = new CalculationCell() { CellReference = "E1", NewLevel=true, SheetId=1};
                calcChain.AppendChild(calcCell);
                CalculationProperties calcprop = new CalculationProperties();
                workbookPart.Workbook.CalculationProperties = calcprop;
                worksheetPart.Worksheet.Save();
                workbookPart.Workbook.Save();
                document.Close();
                System.Diagnostics.Process.Start(filename);
            }

    29 октября 2019 г. 8:13