標籤:npoi excel c#
var path = new FileStream((Server.MapPath("~") + "Content\\data\\Cause\\事業單位管理員基本情況.xls"), FileMode.Open, FileAccess.Read);
var wb = new HSSFWorkbook(path);
var shet = wb.GetSheet("page 1");
var chain = shet.Chain("D7");
var rowFun = new List<Func<PersonInfo, bool>>
{
//合計
m=>true,
m=>m.Sex.Equals("女"),
m=>!m.FamilyName.Contains("漢族"),
m=>m.PoliticalFace.Contains("黨員"),
m=>m.HigthDeggee.Contains("博士"),
m=>m.HigthDeggee.Contains("碩士"),
m=>true,
m=>m.HigthDeggee.Contains("研究生"),
m=>m.HigthDeggee.Contains("大學本科"),
m=>m.HigthDeggee.Contains("大學專科"),
m=>m.HigthDeggee.Contains("中專"),
m=>m.HigthDeggee.Contains("高中及以下"),
//年齡
m=>m.AgeGroup.Contains("35歲及以下"),
m=>m.AgeGroup.Contains("36歲至40歲"),
m=>m.AgeGroup.Contains("41歲至45歲"),
m=>m.AgeGroup.Contains("46歲至50歲"),
m=>m.AgeGroup.Contains("51歲至54歲"),
m=>m.AgeGroup.Contains("55歲至59歲"),
m=>m.AgeGroup.Contains("60歲及以上"),
};
var colFun = new List<Func<PersonInfo, bool>>
{
m=>true,
m=>m.Sex.Equals("女"),
m=>!m.FamilyName.Contains("漢族"), //少數名族
m=>m.ManageGrage.Contains("一級職員"),
m=>m.ManageGrage.Contains("二級職員"),
m=>m.ManageGrage.Contains("三級職員"),
m=>m.ManageGrage.Contains("四級職員"),
m=>m.ManageGrage.Contains("五級職員"),
m=>m.ManageGrage.Contains("六級職員"),
m=>m.ManageGrage.Contains("七級職員"),
m=>m.ManageGrage.Contains("八級職員"),
m=>m.ManageGrage.Contains("九級職員"),
m=>m.ManageGrage.Contains("十級職員"),
m=>m.ManageGrage.Contains("其他等級"),
//非在冊正式人員
m=>!m.LaborForm.Contains("正式在編")&&!m.LaborForm.Contains("勞務派遣"),
};
var person = session.Find<PersonInfo>(); //這是我們自己封裝的類,查詢表中的資料
for (var k = 0; k < colFun.Count; k++)
{
var col = colFun[k];
for (var i = 0; i < rowFun.Count; i++)
{
var row = rowFun[i];
var result = person.Where(col).Where(row).ToList();
chain.Output(result.Count()); //output是我們自己封裝的類,自動換到下一個框裡
}
chain.NextRow(); //nexnow是我們自己封裝的類,自動換到下一行裡,如自己匯出行數+1即可
}
下面直接匯出就可以了
C#中聯查的簡單方法(如從資料庫中擷取到資料放到excel表中)