| 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"); |
| } |
| } |
| } |
| } |
| } |