接口:
public ActionResult DemoPostDownLoad ( )
{
var caseid = ( string ) Session[ "CaseId" ] ;
var companyId = ( string ) Session[ "CompanyId" ] ;
var demoPost = new List < DemoPostAndAge > ( ) ;
#region 不需要修改,这里是创建excel表及工作簿
IWorkbook workbook = new HSSFWorkbook ( ) ;
var tipStyle = workbook. CreateCellStyle ( ) ;
tipStyle. Alignment = HorizontalAlignment. Center;
var tipFont = workbook. CreateFont ( ) ;
tipFont. IsBold = true ;
tipStyle. SetFont ( tipFont) ;
var titleStyle = workbook. CreateCellStyle ( ) ;
titleStyle. FillForegroundColor = NPOI. HSSF. Util. HSSFColor. Red. Index;
titleStyle. FillPattern = FillPattern. SolidForeground;
titleStyle. FillBackgroundColor = NPOI. HSSF. Util. HSSFColor. Red. Index;
var titleFont = workbook. CreateFont ( ) ;
titleFont. Color = IndexedColors. White. Index;
titleStyle. SetFont ( titleFont) ;
ISheet sheet1 = workbook. CreateSheet ( "部门职务" ) ;
IRow sheet1Title = sheet1. CreateRow ( 0 ) ;
#endregion
#region 数据写入职务及年龄参数类
var selectPost = _dbContext. SelectPostList ( caseid) . ToList ( ) ;
var basicInfo = _dbContext. Hireds. Select ( m = > new { m. Age, m. Sex, m. CaseallPostId, m. CaseallPost, m. CompanyId, m. Deleted } )
. Where ( m = > m. CompanyId == companyId && ! m. Deleted)
. ToList ( ) ;
foreach ( var item in selectPost)
{
var demp = new DemoPostAndAge ( ) ;
int average = 0 ;
var numbertopeople = basicInfo. Where ( m = > m. CaseallPost. PostId == item. Id) . ToList ( ) ;
var agesum = basicInfo. Sum ( m = > m. Age) ;
if ( numbertopeople. Count != 0 && agesum != 0 )
{
average = agesum / numbertopeople. Count;
}
demp. DemoPost = item. Name;
demp. AverageAge = average;
demoPost. Add ( demp) ;
}
#endregion
#region 创建工作簿标头字段
var names = selectPost. Select ( m = > m. Name) . ToList ( ) ;
for ( var i = 0 ; i < names. Count ( ) ; i++ )
{
sheet1Title. CreateCell ( i) . SetCellValue ( names[ i] ) ;
}
#endregion
#region 对应工作簿字段插入值
var index = 1 ;
var rowIndex = 1 ;
foreach ( var item in demoPost)
{
IRow title = sheet1. CreateRow ( rowIndex) ;
title. CreateCell ( 0 ) . SetCellValue ( item. DemoPost) ;
title. CreateCell ( 1 ) . SetCellValue ( item. AverageAge) ;
rowIndex++ ;
index++ ;
}
sheet1. CreateRow ( rowIndex) ;
rowIndex++ ;
#endregion
#region 数据写入,返回
MemoryStream ms = new MemoryStream ( ) ;
workbook. Write ( ms) ;
ms. Flush ( ) ;
ms. Position = 0 ;
return File ( ms, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" , "部门职务.xls" ) ;
#endregion
}
前端:
< div style= "width:200px;display:inline-block;" class = "margin-top20" >
< div v- show= "showPull" class = "you" style= "position:absolute;display:none;" >
< ul class = "xztable" >
< li v- on: click= "downLoad1('@Url.Action(" DemoPostDownLoad", " ReportCenter")')" > 部门职务统计表< / li>
< / ul>
< / div>
< / div>
[ WebMethod ]
[ HttpPost ]
public static List< Dictionary< string , string > > CapitalFlowDownLoad ( int Time, int Model_id)
{
var dataTable = new DataTable ( ) ;
var keyList = new List < Dictionary< string , string > > ( ) ;
try
{
string [ ] Chinesname = { "公司编号" , "年初总经费" , "市场调研费" , "正常招聘费" , "紧急招聘费" , "市场认证费" ,
"市场开拓费" , "产品研发费" , "批发店建设费" , "零售店建设费" , "电子商务平台建设费" , "原材料采购费" ,
"原材料运输费" , "产品生产费用" , "产品运输费" , "调货费" , "订货会进场费" , "实体零售推广额" ,
"电子商务零售推广额" , "批发运输配送费" , "批发订单违约金" , "电子商务物流配送费" , "销售收入(+)" , "售后服务费" ,
"清仓收入(+)" , "产品退换货损失" , "维护费" , "裁撤费" , "员工薪酬" , "辞退费" , "管理费" , "企业所得税" ,
"年末总经费支出合计" , "年末剩余总经费" } ;
#region 获取资金流/学生数据
string CapitalFlowsql = string . Format ( "select * from CapitalFlow(nolock) where Time=" + Time + " and Model_id=" + Model_id + "" ) ;
var CapitalFlowList = db. Fetch < Model. CapitalFlow > ( CapitalFlowsql) ;
string Studentsql = string . Format ( "select * from Student(nolock) where ModelInfo_id=" + Model_id) ;
var StudentList = db. Fetch < Model. Student > ( Studentsql) ;
#endregion
foreach ( var item in Chinesname)
{
dataTable. Columns. Add ( item) ;
}
DataRow dr = dataTable. NewRow ( ) ;
foreach ( var item in StudentList)
{
var Capitalflow = CapitalFlowList. SingleOrDefault ( m = > m. Stu_id == item. id) ;
if ( Capitalflow != null )
{
dr[ 0 ] = item. Name;
dr[ 1 ] = Capitalflow. Inearly_Price;
dr[ 2 ] = Capitalflow. Market_Price;
dr[ 3 ] = Capitalflow. Normal_Price;
dr[ 4 ] = Capitalflow. Emergency_Price;
dr[ 5 ] = Capitalflow. ISO_Price;
dr[ 6 ] = Capitalflow. MarketDevelopment;
dr[ 7 ] = Capitalflow. ProductDevelopment;
dr[ 8 ] = Capitalflow. SiteProperty;
dr[ 9 ] = Capitalflow. Retail_Price;
dr[ 10 ] = Capitalflow. B2c_Price;
dr[ 11 ] = Capitalflow. RPurchasing;
dr[ 12 ] = Capitalflow. RTransportation;
dr[ 13 ] = Capitalflow. Pproduce;
dr[ 14 ] = Capitalflow. Ptransportation;
dr[ 15 ] = Capitalflow. PTransferCargo;
dr[ 16 ] = Capitalflow. Approach_Price;
dr[ 17 ] = Capitalflow. RetailPromotion;
dr[ 18 ] = Capitalflow. B2cPromotion;
dr[ 19 ] = Capitalflow. WTransportation;
dr[ 20 ] = Capitalflow. WBreachContract;
dr[ 21 ] = Capitalflow. B2cDelivery;
dr[ 22 ] = Capitalflow. SalesRevenue;
dr[ 23 ] = Capitalflow. Service_Price;
dr[ 24 ] = Capitalflow. ClearanceIncome;
dr[ 25 ] = Capitalflow. RMA_Price;
dr[ 26 ] = Capitalflow. Maintenance;
dr[ 27 ] = Capitalflow. Abolition;
dr[ 28 ] = Capitalflow. Salary;
dr[ 29 ] = Capitalflow. Dismissed;
dr[ 30 ] = Capitalflow. ManagementFee;
dr[ 31 ] = Capitalflow. IncomeTax;
dr[ 32 ] = Capitalflow. End_Price;
dr[ 33 ] = Capitalflow. EndSurplus;
dataTable. Rows. Add ( dr) ;
}
}
keyList = JsonConvert. DeserializeObject< List< Dictionary< string , string > > > ( JsonConvert. SerializeObject ( dataTable) ) ;
}
catch ( Exception e)
{
var error = e. Message;
}
return keyList;
}