| using System; | |
| using System.Collections.Generic; | |
| using System.Data; | |
| using System.IO; | |
| using System.Linq; | |
| using System.Text; | |
| using OfficeOpenXml; | |
| using OfficeOpenXml.Table; | |
| namespace EPPlusSamples | |
| { | |
| class Sample16 | |
| { | |
| public static void RunSample16(DirectoryInfo outputDir) | |
| { | |
| using (var package = new ExcelPackage()) | |
| { | |
| var dataTable = new DataTable("test"); | |
| dataTable.Columns.Add("col1"); | |
| dataTable.Columns.Add("col2"); | |
| dataTable.Columns.Add("col3"); | |
| dataTable.Columns.Add("col4"); | |
| dataTable.Rows.Add("qwe11", "qwe12", "qwe13", "qwe14"); | |
| dataTable.Rows.Add("qwe21", "qwe22", "qwe23", "qwe24"); | |
| ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(dataTable.TableName); | |
| worksheet.Cells["A1"].LoadFromDataTable(dataTable, true, TableStyles.None); | |
| worksheet.Protection.AllowSelectLockedCells = false; | |
| worksheet.Protection.AllowSelectUnlockedCells = true; | |
| worksheet.Protection.AllowSort = true; | |
| worksheet.Protection.AllowFormatColumns = true; | |
| worksheet.Protection.AllowAutoFilter = true; | |
| worksheet.Protection.AllowEditObject = true; | |
| worksheet.Protection.IsProtected = true; | |
| var r1=worksheet.ProtectedRanges.Add("Range1", new ExcelAddress(1, 1, worksheet.Dimension.End.Row, 4)); | |
| worksheet.ProtectedRanges.Remove(r1); | |
| var r2 = worksheet.ProtectedRanges.Add("Range2", new ExcelAddress("F3:T12,F15:T30")); | |
| r2.SetPassword("EPPlus"); | |
| worksheet.Column(1).Width = 30; | |
| worksheet.Column(2).Width = 30; | |
| worksheet.Column(3).Width = 100; | |
| worksheet.Column(4).Width = 100; | |
| worksheet.Cells[1, 4, worksheet.Dimension.End.Row, 4].Style.Locked = false; | |
| worksheet.Cells[1, 3, worksheet.Dimension.End.Row, 4].Style.WrapText = true; | |
| using (var fs = new FileStream(Path.Combine(outputDir.ToString(), "sample16.xlsx"), FileMode.Create)) | |
| package.SaveAs(fs); | |
| } | |
| using (var fs = new FileStream(Path.Combine(outputDir.ToString(), "sample16.xlsx"), FileMode.Open, FileAccess.Read)) | |
| using (var package = new ExcelPackage(fs)) | |
| { | |
| foreach (var worksheet1 in package.Workbook.Worksheets) | |
| { | |
| var prCollection = worksheet1.ProtectedRanges; | |
| if (prCollection.Count != 1) | |
| throw new InvalidOperationException("Expected 1 element"); | |
| } | |
| } | |
| } | |
| } | |
| } |