Как установить видимость книги Excel в C # - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь использовать OpenXML, чтобы программно установить книгу Excel видимой, но я довольно новичок в C # и не уверен, как это сделать.

Мы используем стороннее приложение, которое хранит документы Office, и мне поручено создавать отчеты. Одна из многих странных вещей, которые он делает, - сжимает документы перед их сохранением и устанавливает для видимости книги Excel значение false в записи базы данных.

В соответствии с документацией есть функция, которая должна это делать:

public DocumentFormat.OpenXml.EnumValue<DocumentFormat.OpenXml.Spreadsheet.VisibilityValues> Visibility { get; set; }

Как мне перевести это в рабочий пример C #? У меня пока не так много:

using (MemoryStream mem = new MemoryStream())
{
    mem.Write(byteArray, 0, (int)byteArray.Length);

    using (SpreadsheetDocument rptTemplate = SpreadsheetDocument.Open(mem, true))
    {   // the next line doesn't work
        rptTemplate.WorkbookPart.Workbook.WorkbookProperties.SetAttribute(VisibilityValues = visible)
        rptTemplate.WorkbookPart.Workbook.Save();
        rptTemplate.SaveAs(filePathName);
    }
}

1 Ответ

0 голосов
/ 09 января 2019

Прежде всего вам нужно получить WorkbookView вашей книги, поэтому

  var workBookView = workbookpart.Workbook.Descendants<WorkbookView>().FirstOrDefault();

и затем вы можете установить желаемую видимость:

   workBookView.Visibility = VisibilityValues.Hidden;

если вы создаете документ электронной таблицы, вы должны создать workBookView, прежде чем использовать его, как показано ниже:

   spreadsheetDocument.WorkbookPart.Workbook.Append(new BookViews(new WorkbookView()));
...