Vinodh Muthusamy Ответов: 1

Как защитить пароль при открытии файла xlsx


Я создал формат xlsx из набора данных, он работает нормально, но мне нужно защитить пароль, когда мы открываем файл xlsx в пути назначения.

я разместил свой код ниже, пожалуйста, дайте мне знать, где я должен сделать модификацию.

пожалуйста, помогите мне, как кодировать для защиты паролем.

Что я уже пробовал:

using DocumentFormat.OpenXml.Spreadsheet;
using DocumentFormat.OpenXml.Packaging;  

using (var workbook = SpreadsheetDocument.Create(XLSXCreationPath, DocumentFormat.OpenXml.SpreadsheetDocumentType.Workbook))
                {
                    var workbookPart = workbook.AddWorkbookPart();
                    workbook.WorkbookPart.Workbook = new Workbook();
                    workbook.WorkbookPart.Workbook.Sheets = new Sheets();
                    var lines = new List<string>();
                    foreach (System.Data.DataTable table in ds.Tables)
                    {
                        var sheetPart = workbook.WorkbookPart.AddNewPart<WorksheetPart>();
                        var sheetData = new SheetData();
                        sheetPart.Worksheet = new Worksheet(sheetData);
                        Sheets sheets = workbook.WorkbookPart.Workbook.GetFirstChild<Sheets>();
                        string relationshipId = workbook.WorkbookPart.GetIdOfPart(sheetPart);
                        uint sheetId = 1;
                        if (sheets.Elements<Sheet>().Count() > 0)
                        {
                            sheetId =
                                sheets.Elements<Sheet>().Select(s => s.SheetId.Value).Max() + 1;
                        }
                        Sheet sheet = new Sheet() { Id = relationshipId, SheetId = sheetId, Name = table.TableName };
                        sheets.Append(sheet);
                        Row headerRow = new Row();
                        List<String> columns = new List<string>();
                        foreach (System.Data.DataColumn column in table.Columns)
                        {
                            columns.Add(column.ColumnName);
                            Cell cell = new Cell();
                            cell.DataType = CellValues.String;
                            cell.CellValue = new CellValue(column.ColumnName);
                            headerRow.AppendChild(cell);
                        }
                        sheetData.AppendChild(headerRow);
                        foreach (System.Data.DataRow dsrow in table.Rows)
                        {
                            Row newRow = new Row();
                            foreach (String col in columns)
                            {
                                Cell cell = new Cell();
                                cell.DataType = CellValues.String;
                                cell.CellValue = new CellValue(dsrow[col].ToString()); 
                                newRow.AppendChild(cell);
                            }
                            sheetData.AppendChild(newRow);
                        }
                    }

1 Ответов

Рейтинг:
1

Richard MacCutchan

Проверьте документацию: _Рабочий лист.Метод защиты (Microsoft.Офис.Взаимодействие.Превосходить)[^].

[редактировать]
Как указывает Ричард Диминг, ваш вопрос относится к OpenXML, но предложение то же самое, проверьте документацию.
[/редактировать]


Richard Deeming

Эта ссылка предназначена для взаимодействия. Похоже, что ФП является использование инструкции OpenXML SDK для.

Richard MacCutchan

А, хорошо подмечено.