blob: c750eaa64bc37466e493c14494dfbf31775d1498 [file] [log] [blame]
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");
}
}
}
}
}