62,073
社区成员
发帖
与我相关
我的任务
分享
//已完成下拉选项设置 ,供有同样需求的小伙伴们一个参考;级联 正在研究。。。
/// <summary>
/// 设置Excel 下拉框
/// </summary>
private void TestExcelExport()
{
using (var package = new ExcelPackage())
{
var sheet = package.Workbook.Worksheets.Add("sheet1");
InitTitles(sheet);
var hideSheet = package.Workbook.Worksheets.Add("hideSheet");
var provinces = InitProvince();
for (int idx = 0; idx < provinces.Count; idx++)
{
hideSheet.Cells[idx + 1, 1].Value = provinces[idx].Name;
hideSheet.Cells[idx + 1, 2].Value = provinces[idx].Id;
}
var citys = InitCity();
for (int idx = 0; idx < citys.Count; idx++)
{
hideSheet.Cells[idx + 1, 3].Value = citys[idx].Name;
hideSheet.Cells[idx + 1, 4].Value = citys[idx].ParentId;
}
var provinceAddress = hideSheet.Cells[1, 1].Address;
var provinceValidation = sheet.DataValidations.AddListValidation("A2:A10");
provinceValidation.Formula.ExcelFormula = "=hideSheet!$A:$A";
provinceValidation.Prompt = "选择省份";
provinceValidation.ShowInputMessage = true;
//hideSheet.Hidden = eWorkSheetHidden.Hidden; 隐藏sheet
package.SaveAs(new FileInfo(string.Format("d:/{0}.xlsx", DateTime.Now.Ticks)));
}
}
private void InitTitles(ExcelWorksheet worksheet)
{
worksheet.Cells[1, 1].Value = "省份";
worksheet.Cells[1, 2].Value = "城市";
}
/// <summary>
/// 初始化省份
/// </summary>
private List<KeyValue> InitProvince()
{
var list = new List<KeyValue>
{
new KeyValue {Id = 1, Name = "上海市"},
new KeyValue {Id = 2, Name = "江苏省"},
new KeyValue {Id = 3, Name = "北京市"}
};
return list;
}
/// <summary>
/// 初始化城市
/// </summary>
/// <returns></returns>
private List<KeyValue> InitCity()
{
var list = new List<KeyValue>
{
new KeyValue {Id = 1, ParentId = 1, Name = "上海市1"},
new KeyValue {Id = 2, ParentId = 2, Name = "徐州市"},
new KeyValue {Id = 3, ParentId = 2, Name = "苏州市"},
new KeyValue {Id = 4, ParentId = 2, Name = "昆山市"},
new KeyValue {Id = 5, ParentId = 2, Name = "南京市"},
new KeyValue {Id = 6, ParentId = 3, Name = "北京市1"}
};
return list;
}