Npoi2.0.5导出word合并行和合并列
更新时间:2023-10-01 11:10:01 阅读量: 综合文库 文档下载
- npoi2010库下载推荐度:
- 相关推荐
using System;
using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Text; using System.Data;
using System.Collections; using System.IO; using NPOI;
using NPOI.HSSF.UserModel; using DAL = CC.DAL; using CC.Common; using BLL = CC.BLL;
using NPOI.XWPF.UserModel; using NPOI.OpenXml4Net;
using NPOI.OpenXmlFormats.Wordprocessing; /********************
* 功能:食谱分析报告导出 * 编写人:
* 日期:2014.5.27 * nopi版本:2.0.5.0 ********************/
public partial class ExportFoodCheckList : BasePage {
#region //加载模板
protected void Page_Load(object sender, EventArgs e) {
if (Request[\ {
string type = Request[\
int RecweekId = int.Parse(Request[\ ViewState[\ if (type == \ {
XWPFDocument doc = HtmlExport(Int32.Parse(ViewState[\0);//.Replace(\border='0' class='table_food mt10'\\border='1' \border='0' class='table_food mt10'\\
string wordFile = Server.MapPath(\模板.docx\ FileInfo file = new FileInfo(wordFile); if (file.Exists) {
FileStream out1 = new FileStream(wordFile, FileMode.Create); doc.Write(out1); out1.Close();
openWindowExport(wordFile, \食谱.docx\
} } else {
XWPFDocument doc = new XWPFDocument(); string wordFile = Server.MapPath(\模板.docx\ FileInfo file = new FileInfo(wordFile); if (file.Exists){
doc = tbGetReport(Int32.Parse(ViewState[\doc);
FileStream out1 = new FileStream(wordFile, FileMode.Create); doc.Write(out1); out1.Close();
openWindowExport(wordFile, \食谱分析报告.docx\ } }
} }
public static string openWindowExport(string strFileName,string downfile) {
string strReutrn = \ try {
FileInfo DownloadFile = new FileInfo(strFileName); System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.ClearHeaders(); System.Web.HttpContext.Current.Response.Buffer = false; System.Web.HttpContext.Current.Response.ContentType = \
System.Web.HttpContext.Current.Response.AppendHeader(\\
+ System.Web.HttpUtility.UrlEncode(downfile, System.Text.Encoding.UTF8)); System.Web.HttpContext.Current.Response.AppendHeader(\
DownloadFile.Length.ToString());
System.Web.HttpContext.Current.Response.WriteFile(DownloadFile.FullName); }
catch (Exception Ex) {
strReutrn = Ex.Message; }
finally {
System.Web.HttpContext.Current.Response.Flush(); System.Web.HttpContext.Current.Response.End(); }
return strReutrn; }
#endregion
#region//导出食谱
private XWPFDocument HtmlExport(int recpweekId, int dispalyMaterial) {
XWPFDocument doc = new XWPFDocument();
XWPFSettings set = new XWPFSettings(); StringBuilder str = new StringBuilder();
//星期
DataTable dtWeek = DAL.R_RecipeMeal.GetRecipeWeek(recpweekId).Tables[0]; DataTable dt = new DataTable();
DataTable dt_weekday = new DataTable(); dt =
CC.DAL.R_RecipeWeekMain().GetRecWeekDetailConnMealType(recpweekId).Tables[0]; dt = RCC(dt);
Hashtable hRQtable = new Hashtable(); string weekstart = \ string weekend = \ string strtitle = \周食谱\ if (dispalyMaterial == 1) strtitle = \带量食谱\ dt_weekday =
CC.DAL.R_RecipeWeekMain().GetRecSevenDay(recpweekId).Tables[0]; if (dt_weekday.Rows.Count > 0) {
//设置 顶部title
weekstart = dt_weekday.Rows[0][\ weekend = dt_weekday.Rows[0][\
new
new
//设置 顶部title
XWPFParagraph p1 = doc.CreateParagraph(); XWPFRun r1 = p1.CreateRun(); r1.SetBold(true);
r1.SetText(dt_weekday.Rows[0][\ r1.SetBold(true);
r1.SetFontFamily(\
p1.SetAlignment(ParagraphAlignment.CENTER); r1.SetFontSize(25);
p1 = doc.CreateParagraph();
p1.SetAlignment(ParagraphAlignment.CENTER); r1.SetFontSize(15); r1 = p1.CreateRun(); r1.SetBold(true);
r1.SetText(\日期:\—\周次:\ r1.SetBold(true);
r1.SetFontFamily(\ r1.SetTextPosition(20); int dayCnt = 0;
//星期对应日期加入hashtable
for (DateTime t = DateTime.Parse(weekstart); t <= DateTime.Parse(weekend); t = t.AddDays(1)) {
if (dayCnt == 7) break;
hRQtable.Add(t.DayOfWeek.ToString(), t.Date.ToString(\ dayCnt = dayCnt + 1; } }
XWPFTable table = null; table = doc.CreateTable();
// table = cteatetemprow(table, dtWeek, dispalyMaterial); table.Width = 1000000; if (dt.Rows.Count > 0) {
//星期head 完毕
//食物与材料不对应 分N次循环各餐 分七次循环个列 XWPFTableRow m_Row; XWPFTableCell cell; CT_Tc cttc; CT_TcPr ctPr; CT_TblWidth wid;
CT_R ctr; CT_RPr ctrpr; CT_Color cor; CT_OnOff b;
CT_HpsMeasure sz;
for (int i = 0; i < dt.Rows.Count; i++) //循环餐 {
m_Row = table.CreateRow();//创建一行
cell = m_Row.GetCell(0);// m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr(); //wid = new CT_TblWidth(); //wid.w = \ //ctPr.tcW = wid;
ctr = cttc.GetPList()[0].AddNewR(); ctrpr = ctr.AddNewRPr();
ctrpr.AddNewRFonts().hint = ST_Hint.eastAsia; cor = new CT_Color(); cor.val = \ ctrpr.color = cor; b = new CT_OnOff(); b.val = true; ctrpr.b = b;
sz = new CT_HpsMeasure(); sz.val = (ulong.Parse(\ ctrpr.sz = sz;
ctPr.vAlign.val = ST_VerticalJc.center;
ctr.AddNewT().Value = \ \餐次\ \
for (int x = 0; x < dtWeek.Rows.Count; x++) //循环列 {
string weekName = NumToChina(Convert.ToInt32(dtWeek.Rows[x][\ cell = m_Row.CreateCell();
\
星
期
\
+
// 转化字符串为集合 关键字符(:&)示范(荷包蛋&大米:10;荷包蛋&鸡蛋:30 )循环li
string StrMon = dt.Rows[i][weekName].ToString(); string StrRecipName = null; //菜谱名 string StrTempRecipName = null; string[] arr = StrMon.Split(';');
List
string tablefd = \
for (int j = 0; j < arr.Length; j++) {
StrTempRecipName = arr[j].Split('&')[0]; if (StrRecipName != StrTempRecipName) {
if (j == 0)
tablefd += arr[j].Split('&')[0]; else
追加==str.append()
tablefd += \、\ }
StrRecipName = arr[j].Split('&')[0];
//组合 食材+量 集合
mList.Add(arr[j].Split('&')[1]); }
cell.SetText(tablefd); } else {
if (i == dt.Rows.Count - 1)
cell.SetText(\ .\}
//显示材料:量
Hashtable tb = new Hashtable(); if (dispalyMaterial == 1) {
cell = m_Row.CreateCell(); if (mList.Count > 0) {
mList.Sort();
tb = getFoodNameValue(mList); //合并 材料 int tempi = 1;
foreach (DictionaryEntry de in tb) {
if (tb.Count != tempi)
cell.SetText(de.Key + \、\ else
cell.SetText(de.Key + \ tempi = tempi + 1; } }
else {
cell.SetText(\ .\ } } } }
table.RemoveRow(0);
m_Row = table.InsertNewTableRow(0);//创建一行 cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr(); wid = new CT_TblWidth(); wid.w = \ ctPr.tcW = wid;
ctr = cttc.GetPList()[0].AddNewR(); ctrpr = ctr.AddNewRPr();
ctrpr.AddNewRFonts().hint = ST_Hint.eastAsia; cor = new CT_Color(); cor.val = \ ctrpr.color = cor; b = new CT_OnOff(); b.val = true; ctrpr.b = b;
sz = new CT_HpsMeasure(); sz.val = (ulong.Parse(\ ctrpr.sz = sz;
ctr.AddNewT().Value = \ 餐次 \ for (int i = 0; i < dtWeek.Rows.Count; i++) {
string weekName = \ NumToChina(Convert.ToInt32(dtWeek.Rows[i][\ \
星
期
\
+
cell = m_Row.CreateCell();//创建一个单元格,创建单元格时就创建了一个CT_P
cttc = cell.GetCTTc(); // w = new CT_TblWidth(); w.w = \ ctPr = cttc.AddNewTcPr(); //ctPr.tcW = w; ctPr.noWrap.val = true;
ctr = cttc.GetPList()[0].AddNewR(); ctrpr = ctr.AddNewRPr(); ctrpr.b = b; ctrpr.sz = sz;
if (dispalyMaterial == 1)
ctPr.gridSpan.val = \合并2列 ctPr.vAlign.val = ST_VerticalJc.both;
ctrpr.AddNewRFonts().hint = ST_Hint.eastAsia;
cttc.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.center; if
(hRQtable[NumToweek(Convert.ToInt32(dtWeek.Rows[i][\ {
weekName += \
hRQtable[NumToweek(Convert.ToInt32(dtWeek.Rows[i][\ }
ctr.AddNewT().Value = weekName; } }
// table.RemoveRow(1);
DataTable dt_memo = new DataTable();
CC.Model.R_RecipeWeekMain modelrwm = new CC.Model.R_RecipeWeekMain(); modelrwm = new CC.DAL.R_RecipeWeekMain().GetModel(recpweekId);
XWPFParagraph p = doc.CreateParagraph(); XWPFRun r = p.CreateRun(); r.SetBold(true);
r.SetText(\备注信息:\ r.SetBold(true);
r.SetFontFamily(\
p.SetAlignment(ParagraphAlignment.CENTER); r.SetFontSize(10); return doc; }
#endregion
#region //公共函数
private DataTable RCC(DataTable _outDataSource) {
//从DataTable中读取不重复的item行,用来构造新DataTable的列
DataTable distinct_date = _outDataSource.DefaultView.ToTable(true, \
DataTable new_DataTable = new DataTable();
//将名称列添加到新表中
DataColumn new_mealName_col = new DataColumn(); new_mealName_col.ColumnName = \餐次\ new_mealName_col.Caption = \
new_DataTable.Columns.Add(new_mealName_col);
+
DataColumn new_mon_col = new DataColumn(); new_mon_col.ColumnName = \星期一\ new_mon_col.Caption = \
new_DataTable.Columns.Add(new_mon_col);
DataColumn new_tue_col = new DataColumn(); new_tue_col.ColumnName = \星期二\ new_tue_col.Caption = \
new_DataTable.Columns.Add(new_tue_col);
DataColumn new_wed_col = new DataColumn(); new_wed_col.ColumnName = \星期三\ new_wed_col.Caption = \
new_DataTable.Columns.Add(new_wed_col);
DataColumn new_thur_col = new DataColumn(); new_thur_col.ColumnName = \星期四\ new_thur_col.Caption = \
new_DataTable.Columns.Add(new_thur_col);
DataColumn new_fri_col = new DataColumn(); new_fri_col.ColumnName = \星期五\ new_fri_col.Caption = \
new_DataTable.Columns.Add(new_fri_col);
DataColumn new_sat_col = new DataColumn(); new_sat_col.ColumnName = \星期六\ new_sat_col.Caption = \
new_DataTable.Columns.Add(new_sat_col);
DataColumn new_sun_col = new DataColumn();
new_sun_col.ColumnName = \星期天\ new_sun_col.Caption = \
new_DataTable.Columns.Add(new_sun_col); StringBuilder str_sum = new StringBuilder();
//到此新表已经构建完毕,下面开始为新表添加数据*/
//从原DataTable中读出不重复的名称,以名称为关键字来构造新表的行 //聚合各周材料字段 (白菜:20g) 与 菜谱字段 (白菜汤) //需要再次处理拆分 材料 字段 进行 材料量的合并
DataRow[] drs; DataRow new_dr;
foreach (DataRow dr in distinct_date.Rows) {
new_dr = new_DataTable.NewRow();
new_dr[\餐次\ foreach (DataRow _dr in _outDataSource.Rows) {
// drs = _outDataSource.Select(\\
if (new_dr[\餐次\ {
new_dr[\星期一\= new_dr[\星期一\== \? _dr[\星期一\星期一\星期一\new_dr[\星期一\星期一\
new_dr[\星期二\= new_dr[\星期二\== \? _dr[\星期二\星期二\星期二\new_dr[\星期二\星期二\
new_dr[\星期三\= new_dr[\星期三\== \? _dr[\星期三\星期三\星期三\new_dr[\星期三\星期三\
new_dr[\星期四\= new_dr[\星期四\== \? _dr[\星期四\星期四\星期四\new_dr[\星期四\星期四\
new_dr[\星期五\= new_dr[\星期五\== \? _dr[\星期五\星期五\星期五\new_dr[\星期五\星期五\
new_dr[\星期六\= new_dr[\星期六\== \? _dr[\星期六\星期六\星期六\new_dr[\星期六\星期六\
new_dr[\星期天\= new_dr[\星期天\== \? _dr[\星期天\星期天\星期天\new_dr[\星期天\星期天\
} }
new_DataTable.Rows.Add(new_dr);
}
return new_DataTable; }
private Hashtable getFoodNameValue(List
Hashtable tb = new Hashtable(); string name = \
string tempname = \ for (int j = 0; j < mList.Count; j++) {
name = mList[j].Split(':')[0]; if (name != tempname) {
tb.Add(name, mList[j].Split(':')[1]);
tempvalue = double.Parse(mList[j].Split(':')[1].Trim()); } else {
tb.Remove(name);
tempvalue = tempvalue + double.Parse(mList[j].Split(':')[1].Trim()); tb.Add(name, tempvalue); }
tempname = name;
}
return tb; }
protected string NumToweek(int week) {
switch (week) {
case 1: return \ case 2: return \ case 3: return \ case 4: return \ case 5: return \ case 6: return \ case 7: return \ default: return \ } }
#endregion
#region //营养分析报告
public XWPFDocument tbGetReport(int RecipeWeekId, XWPFDocument mydoc) {
ViewState[\
StringBuilder str = new StringBuilder(); string strdate = \ string eattype = \ string schoolname = \
//0.绑定头部信息
XWPFDocument doc = mydoc; CC.Model.R_RecipeWeekMain model BLL.R_RecipeWeekMain().GetModel(RecipeWeekId);
= new
eattype = DAL.R_RecipeChildCnt.GetRecipeMealStr(RecipeWeekId);//就餐方式 if (model != null) {
string start = model.WeekStart.ToLongDateString(); string end = model.WeekEnd.ToLongDateString(); strdate = start + \
schoolname = new CC.DAL.T_School().GetModel(model.SchoolId).Name; }
XWPFParagraph grap = doc.CreateParagraph(); XWPFRun run = grap.CreateRun(); run.SetFontSize(16);
grap.SetAlignment(ParagraphAlignment.CENTER);
run.SetText(\周食谱营养分析报告(每人每日在园量)\ run.SetBold(true);
run.SetFontFamily(\ grap = doc.CreateParagraph(); run = grap.CreateRun(); run.SetFontSize(12);
grap.SetAlignment(ParagraphAlignment.CENTER); run.SetFontFamily(\
run.SetText(schoolname + \ \ grap = doc.CreateParagraph();
XWPFRun canshirun = grap.CreateRun(); canshirun.SetFontSize(12);
grap.SetAlignment(ParagraphAlignment.CENTER); canshirun.SetFontFamily(\ canshirun.SetText(\餐式:\
doc = GetReportAnyaly1(RecipeWeekId, doc);//.Replace(\border='0' class='table_food mt10'\\border='1' \border='0' class='table_food mt10'\
\
doc.CreateParagraph();//换行 // run = grap.CreateRun();
doc = GetReportAnyaly2(Int32.Parse(ViewState[\ doc.CreateParagraph(); run = grap.CreateRun();
doc = GetReportAnyaly3(Int32.Parse(ViewState[\ doc.CreateParagraph(); run = grap.CreateRun();
doc = GetReportAnyaly4(Int32.Parse(ViewState[\ doc.CreateParagraph(); run = grap.CreateRun();
XWPFParagraph grapAdvice = doc.CreateParagraph(); XWPFRun graprun = grapAdvice.CreateRun();
graprun.SetText(\营养分析建议 \ graprun.SetBold(true);
graprun.SetFontFamily(\
grapAdvice.SetAlignment(ParagraphAlignment.LEFT); XWPFTable table = doc.CreateTable();
XWPFTableRow m_Row = table.CreateRow();//创建一行 m_Row.GetCell(0).SetText(GetProposal()); table.RemoveRow(0); double sumScore
HWF.HW_StrToDouble(HWF.HW_StrToDouble(ViewState[\ if (sumScore < 0) {
sumScore = 0; }
=
canshirun.SetText(\ 总分\ return doc; }
//推荐量计算报告
private XWPFDocument GetReportAnyaly1(int RecipeWeekId, XWPFDocument doc) {
DataTable dtRec = DAL.R_NutritionRecommend.GetNutritionRecommend(RecipeWeekId).Tables[0]; DataTable dtWeek = DAL.R_NutritionRecommend.GetNutritionRecipeWeek(RecipeWeekId).Tables[0]; decimal Score = HWF.HW_StrToDecimal(DAL.R_RptScoreSet.GetList().Tables[0].Rows[0][\//分值
if (dtRec.Rows.Count == 1 && dtWeek.Rows.Count == 1)
{
XWPFParagraph grap = doc.CreateParagraph(); XWPFRun run = grap.CreateRun();
run.SetText(\各营养素的摄入量与推荐营养素摄入量比较(人均)\ run.SetBold(true);
run.SetFontFamily(\
grap.SetAlignment(ParagraphAlignment.LEFT); XWPFTable table = doc.CreateTable();
XWPFTableRow m_Row = table.CreateRow();//创建一行 //m_Row.SetRepeatHeader(true); m_Row.GetCell(0).SetText(\营养素\ XWPFTableCell cell = m_Row.CreateCell(); cell.SetText(\推荐量\ cell = m_Row.CreateCell(); cell.SetText(\摄入量\ cell = m_Row.CreateCell();
cell.SetText(\摄入量占推荐量比例\ cell = m_Row.CreateCell(); cell.SetText(\实际百分比\ cell = m_Row.CreateCell(); cell.SetText(\评价\
cell = m_Row.CreateCell();
cell.SetText(\扣分\ #region //建立结果表
DataTable dtscore = new DataTable(); dtscore.Columns.Add(\ dtscore.Columns.Add(\ dtscore.Columns.Add(\ dtscore.Columns.Add(\ string ItemName = string.Empty; string Field = string.Empty; #endregion
for (int i = 0; i < 8; i++) {
#region //获取对应字段值 switch (i) {
case 2:
ItemName = \钙\ Field = \
break; case 3:
ItemName = \锌\ Field = \ break; case 4:
ItemName = \维生素A\ Field = \ break; case 5:
ItemName = \硫胺素B1\ Field = \ break; case 6:
ItemName = \尼克酸\ Field = \ break; case 7:
ItemName = \抗坏血酸C\ Field = \ break; }
#endregion //实际百分比
decimal pro = HWF.HW_StrToDecimal(dtWeek.Rows[0][i].ToString()) HWF.HW_StrToDecimal(dtRec.Rows[0][i].ToString()); //摄入量占推荐量比例(区间)
DataTable dt = DAL.R_NutrientsSet.GetNutritionSet(pro, i).Tables[0]; string prointerval = \ string result = \ decimal LowValue HWF.HW_StrToDecimal(dt.Rows[0][\开始值 decimal ExcessValue HWF.HW_StrToDecimal(dt.Rows[0][\结束值 if (dt.Rows.Count > 0) {
result = dt.Rows[0][\
prointerval = dt.Rows[0][\+ \dt.Rows[0][\ }
ViewState[\
m_Row = table.CreateRow();//创建一行
m_Row.GetCell(0).SetText(dtRec.Columns[i].ToString()); cell = m_Row.CreateCell();
/
= =
+
if (dtScore.Rows.Count > 0) {
string addStr1 = string.Empty; string addStr2 = string.Empty; string cutStr = string.Empty; string addFood1 = string.Empty; string addFood2 = string.Empty; string cutFood = string.Empty; string FoodIds = string.Empty;
for (int i = 0; i < dtScore.Rows.Count; i++) {
string ItemName = HWF.HW_ObjectToStr(dtScore.Rows[i][0]); string Result = HWF.HW_ObjectToStr(dtScore.Rows[i][1]); string Field = HWF.HW_ObjectToStr(dtScore.Rows[i][3]);
if (Result == \不足\ {
DataTable dt = DAL.R_Food.GetFoodName(Field, FoodIds).Tables[0]; if (dt.Rows.Count > 0) {
addStr1 += ItemName + \、\
addFood1 += dt.Rows[0][\、\
FoodIds += FoodIds == \? dt.Rows[0][\: \+ dt.Rows[0][\ } }
else if (Result == \严重不足\ {
DataTable dt = DAL.R_Food.GetFoodName(Field, FoodIds).Tables[0]; if (dt.Rows.Count > 0) {
addStr2 += ItemName + \、\
addFood2 += dt.Rows[0][\、\
FoodIds += FoodIds == \? dt.Rows[0][\: \+ dt.Rows[0][\ } } else {
DataTable dt = DAL.R_Food.GetFoodName(Field, HWF.HW_StrToInt32(ViewState[\ if (dt.Rows.Count > 0)
{
cutStr += ItemName + \、\
cutFood += dt.Rows[0][\、\
FoodIds += FoodIds == \? dt.Rows[0][\: \+ dt.Rows[0][\ } }
}
if (addStr1 != \ {
addStr1 = addStr1.Substring(0, addStr1.Length - 1); addStr2 = addStr2.Substring(0, addStr2.Length - 1);
addFood1 = addFood1.Substring(0, addFood1.Length - 1); addFood2 = addFood2.Substring(0, addFood2.Length - 1);
sbStr.AppendFormat(\但{0}不足,{1}严重不足,建议增加{2}、{3}等食材。\addStr1, addStr2, addFood1, addFood2); } else {
if (addStr1 != \ {
addStr1 = addStr1.Substring(0, addStr1.Length - 1);
addFood1 = addFood1.Substring(0, addFood1.Length - 1);
sbStr.AppendFormat(\但{0}不足,建议增加{1}等食材。\addStr1, addFood1);
}
if (addStr2 != \ {
addStr2 = addStr2.Substring(0, addStr2.Length - 1);
addFood2 = addFood2.Substring(0, addFood2.Length - 1);
sbStr.AppendFormat(\但{0}严重不足,建议增加{1}等食材。\addFood2);
} }
if (cutStr != \ {
cutStr = cutStr.Substring(0, cutStr.Length - 1);
cutFood = cutFood.Substring(0, cutFood.Length - 1); if (addStr1 == \ {
sbStr.AppendFormat(\但{0}过剩,建议减少{1}等食材。\cutStr,
cutFood);
} else {
sbStr.AppendFormat(\过剩,建议减少{1}等食材。\ } } }
#endregion
#region//优质蛋白质 if (GoodProtein == \合理\ {
sbStr.Append(\另:蛋白质中,优质蛋白质(豆类、谷类)比例合理。\ } else {
sbStr.Append(\另:蛋白质中,优质蛋白质(豆类、谷类)比例偏低,其它蛋白质比例偏高。\ }
#endregion
#region //植物脂肪
sbStr.AppendFormat(\动物脂肪在脂肪中比例{0}\ #endregion
return sbStr.ToString(); }
#endregion
#endregion
#region//数字转换成中文数字 protected string NumToChina(int i) {
switch (i) {
case 1: return \一\ case 2: return \二\ case 3: return \三\ case 4: return \四\ case 5: return \五\ case 6: return \六\ case 7: return \七\ case 8: return \八\
case 9: return \九\ case 10: return \十\ case 11: return \十一\ case 12: return \十二\ case 13: return \十三\ case 14: return \十四\ case 15: return \十五\ case 16: return \十六\ case 17: return \十七\ case 18: return \十八\ case 19: return \十九\ case 20: return \二十\ case 21: return \二十一\ case 22: return \二十二\ case 23: return \二十三\ case 24: return \二十四\ case 25: return \二十五\ case 26: return \二十六\ case 27: return \二十七\ case 28: return \二十八\ case 29: return \二十九\ case 30: return \三十\ case 31: return \三十一\ case 32: return \三十二\ case 33: return \三十三\ case 34: return \三十四\ case 35: return \三十五\ case 36: return \三十六\ case 37: return \三十七\ case 38: return \三十八\ case 39: return \三十九\ case 40: return \四十\ case 41: return \四十一\ case 42: return \四十二\ case 43: return \四十三\ case 44: return \四十四\ case 45: return \四十五\ case 46: return \四十六\ case 47: return \四十七\ case 48: return \四十八\ case 49: return \四十九\ case 50: return \五十\ default: return \ }
}
#endregion }
CT_Row m_NewRow = new CT_Row();
XWPFTableRow m_Row = new XWPFTableRow(m_NewRow, table); table.AddRow(m_Row);
XWPFTableCell cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr(); ctPr.gridSpan.val = \ //合并2列
cttc.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.left; cttc.GetPList()[0].AddNewR().AddNewT().Value = \ 营养素 \ cell = m_Row.CreateCell(); cell.SetText(\进餐量(g)\ cell = m_Row.CreateCell();
cell.SetText(\占蛋白质总量推荐百分比\ cell = m_Row.CreateCell();
cell.SetText(\实际摄入占蛋白质总量百分比\ cell = m_Row.CreateCell();
cell.SetText(\评价\
cell = m_Row.CreateCell(); cell.SetText(\扣分\
decimal per = HWF.HW_StrToDecimal(dtper.Rows[0][\ DataTable dt = DAL.R_NutrientsSet.GetHeatPer(per, 7).Tables[0]; string prointerval = \ string result = \ if (dt.Rows.Count > 0) {
prointerval = \ result = dt.Rows[0][\ }
ViewState[\ decimal prointerval2 = 100
HWF.HW_StrToDecimal(dt.Rows[0][\非优质蛋白质推荐百分比 decimal per2 = 100 - per;//非优质实际占比 string result2 = string.Empty;//非优质评价 if (result == \偏低\ {
result2 = \偏高\ }
else if (result == \偏高\ {
result2 = \偏低\ } else {
-
result2 = \合理\ }
//计算优质蛋白质得分 if (result == \偏低\ {
double score = HWF.HW_StrToDouble((((HWF.HW_StrToDecimal(dt.Rows[0][\- per) / HWF.HW_StrToDecimal(dt.Rows[0][\ if (score == 0) {
score = 0.01; }
double SumScore = HWF.HW_StrToDouble(ViewState[\- score;
ViewState[\ goodscore = score;
} else {
goodscore = 0; }
if (result2 == \偏高\ {
double score = HWF.HW_StrToDouble((((per2 - prointerval2) / prointerval2) * Score).ToString(\
if (score == 0) {
score = 0.01; }
double SumScore = HWF.HW_StrToDouble(ViewState[\- score;
ViewState[\ ungoodscore = score;
} else {
ungoodscore = 0; }
// m_Row = table.CreateRow();//创建一行 此方法创建的行不支持合并行操作 m_NewRow = new CT_Row();
m_Row = new XWPFTableRow(m_NewRow, table);
table.AddRow(m_Row); cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.restart;//合并行 ctPr.AddNewVAlign().val = ST_VerticalJc.center;//垂直居中 cttc.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.left; cttc.GetPList()[0].AddNewR().AddNewT().Value = \优质蛋白质\ m_Row.CreateCell().SetText(\谷类\
m_Row.CreateCell().SetText(dtWeight.Rows[0][0].ToString());//进餐量 cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.restart;//合并行 ctPr.AddNewVAlign().val = ST_VerticalJc.center;//垂直居中 cttc.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.left;
cttc.GetPList()[0].AddNewR().AddNewT().Value = prointerval+\ 占蛋白质总量推荐百分比
cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.restart;//合并行 ctPr.AddNewVAlign().val = ST_VerticalJc.center;//垂直居中 cttc.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.left;
cttc.GetPList()[0].AddNewR().AddNewT().Value = per.ToString()+\ 实际摄入占蛋白质总量百分比
cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.restart;//合并行 ctPr.AddNewVAlign().val = ST_VerticalJc.center;//垂直居中 cttc.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.left;
cttc.GetPList()[0].AddNewR().AddNewT().Value = result; //评价 cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.restart;//合并行 ctPr.AddNewVAlign().val = ST_VerticalJc.center;//垂直居中 cttc.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.left;
cttc.GetPList()[0].AddNewR().AddNewT().Value = goodscore.ToString(); //数据库中增加(优质蛋白质+蔬菜水果+肉类+其他)的评价 //谷类、豆类
m_NewRow = new CT_Row();
m_Row = new XWPFTableRow(m_NewRow, table);
.\ // .\////扣分 table.AddRow(m_Row); cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.@continue;//合并行
m_Row.CreateCell().SetText(\豆类\
m_Row.CreateCell().SetText(dtWeight.Rows[0][1].ToString());//进餐量 cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.@continue;//合并行 cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.@continue;//合并行 cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.@continue;//合并行 cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.@continue;//合并行
//表未增加行,合并2列,合并2行 //1行
m_NewRow = new CT_Row();
m_Row = new XWPFTableRow(m_NewRow, table); table.AddRow(m_Row); cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.restart;//合并行 ctPr.AddNewVAlign().val = ST_VerticalJc.center;//垂直居中 cttc.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.left;
cttc.GetPList()[0].AddNewR().AddNewT().Value = \非优质蛋白质\ m_Row.CreateCell().SetText(\蔬菜水果\
m_Row.CreateCell().SetText(dtWeight.Rows[0][2].ToString());//进餐量
//m_Row.CreateCell().SetText(prointerval2.ToString()); //占蛋白质总量推荐百分比
cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.restart;//合并行 ctPr.AddNewVAlign().val = ST_VerticalJc.center;//垂直居中 cttc.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.left;
cttc.GetPList()[0].AddNewR().AddNewT().Value = \+ \ .\占蛋白质总量推荐百分比
cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.restart;//合并行 ctPr.AddNewVAlign().val = ST_VerticalJc.center;//垂直居中 cttc.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.left;
cttc.GetPList()[0].AddNewR().AddNewT().Value = per2.ToString()+\ .\实际摄入占蛋白质总量百分比
cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.restart;//合并行 ctPr.AddNewVAlign().val = ST_VerticalJc.center;//垂直居中 cttc.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.left;
cttc.GetPList()[0].AddNewR().AddNewT().Value =result2.ToString(); //评价 cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.restart;//合并行 ctPr.AddNewVAlign().val = ST_VerticalJc.center;//垂直居中 cttc.GetPList()[0].AddNewPPr().AddNewJc().val = ST_Jc.left;
cttc.GetPList()[0].AddNewR().AddNewT().Value = ungoodscore.ToString();//扣分
string[] arryitems = { \肉类\鱼类\其他\
// string[] arryitemField = { \ for (int i = 0; i < 3; i++) {
m_NewRow = new CT_Row();
m_Row = new XWPFTableRow(m_NewRow, table); table.AddRow(m_Row); cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.@continue;//合并行 m_Row.CreateCell().SetText(arryitems[i]);
m_Row.CreateCell().SetText(dtWeight.Rows[0][i+3].ToString());//dtper.Rows[0][arryitemField[i]].ToString()
cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr(); //// ctPr.gridSpan.val = \
ctPr.AddNewVMerge().val = ST_Merge.@continue;//合并行 cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.@continue;//合并行 cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.@continue;//合并行
cell = m_Row.CreateCell(); cttc = cell.GetCTTc();
ctPr = cttc.AddNewTcPr();
ctPr.AddNewVMerge().val = ST_Merge.@continue;//合并行 }
table.RemoveRow(0); }
return doc;
}
//动物脂肪比率
private XWPFDocument GetReportAnyaly4(int RecipeWeekId, XWPFDocument doc) {
double animalscore = 0;
DataTable dtper = DAL.R_NutrientsSet.GetPer(RecipeWeekId).Tables[0]; string prointerval = \ string result = \ decimal per = 0;
if (dtper.Rows.Count > 0) {
StringBuilder str = new StringBuilder();
per = HWF.HW_StrToDecimal(dtper.Rows[0][\ DataTable dt = DAL.R_NutrientsSet.GetHeatPer(per, 8).Tables[0];
if (dt.Rows.Count > 0) {
prointerval = dt.Rows[0][\+ \+ dt.Rows[0][\
result = dt.Rows[0][\ }
ViewState[\ decimal StartValue = HWF.HW_StrToDecimal(dt.Rows[0][\开始值
decimal EndValue = HWF.HW_StrToDecimal(dt.Rows[0][\结束值
decimal Score = HWF.HW_StrToDecimal(DAL.R_RptScoreSet.GetList().Tables[0].Rows[3][\//分值
if (result == \偏高\ {
double score = HWF.HW_StrToDouble((((per - EndValue) / EndValue )* Score).ToString(\
if (score == 0) {
score = 0.01; }
double SumScore = HWF.HW_StrToDouble(ViewState[\- score;
ViewState[\ animalscore = score;
}
else if (result == \偏低\ {
double score = HWF.HW_StrToDouble((((StartValue - per) / StartValue) * Score).ToString(\
if (score == 0) {
score = 0.01; }
double SumScore = HWF.HW_StrToDouble(ViewState[\- score;
ViewState[\ animalscore = score;
} else {
animalscore = 0; }
}
XWPFParagraph grap = doc.CreateParagraph(); XWPFRun run = grap.CreateRun(); run.SetText(\动物脂肪来源分布 \ run.SetBold(true);
run.SetFontFamily(\
grap.SetAlignment(ParagraphAlignment.LEFT); XWPFTable table = doc.CreateTable();
XWPFTableRow m_Row = table.CreateRow();//创建一行
m_Row.GetCell(0).SetText(\营养素\ XWPFTableCell cell = m_Row.CreateCell(); cell.SetText(\占脂肪总摄入量百分比\ cell = m_Row.CreateCell();
cell.SetText(\实际摄入占脂肪总摄入量百分比\ cell = m_Row.CreateCell(); cell.SetText(\评价\
cell = m_Row.CreateCell(); cell.SetText(\扣分\
m_Row = table.CreateRow();//创建一行 m_Row.GetCell(0).SetText(\动物脂肪\ cell = m_Row.CreateCell(); cell.SetText(prointerval); cell = m_Row.CreateCell(); cell.SetText(per.ToString()); cell = m_Row.CreateCell(); cell.SetText(result);
cell = m_Row.CreateCell();
cell.SetText(animalscore.ToString() + \ table.RemoveRow(0);
return doc;
}
#region 报表5建议 //获取评价结果
public string GetProposal() {
#region //获取评价结果 //热量来源占比结果
.\ string Heat1 = HWF.HW_ObjectToStr(ViewState[\ string Heat2 = HWF.HW_ObjectToStr(ViewState[\ string Heat3 = HWF.HW_ObjectToStr(ViewState[\ //八大营养素结果
string Item1 = HWF.HW_ObjectToStr(ViewState[\ DataTable dtScore = (DataTable)ViewState[\
//优质蛋白质占比结果
string GoodProtein = HWF.HW_ObjectToStr(ViewState[\
//植物脂肪结果
string AnimalFat = HWF.HW_ObjectToStr(ViewState[\ #endregion
StringBuilder sbStr = new StringBuilder();
sbStr.AppendFormat(\从热量摄入量与推荐量比较分析:热量总绝对量{0}。\ //热量总绝对量合理 if (Item1 == \合理\ {
sbStr.AppendFormat(\从热量的营养素来源比例分析:蛋白质占比{0},脂肪占比{1},碳水化合物占比{2}。\ string addStr = string.Empty; string cutStr = string.Empty; #region //判断热量来源比例
if (Heat1 == \偏高\偏高\ {
cutStr = \肉、鱼类、蛋类、乳制品、\ }
else if (Heat1 == \偏低\偏低\ {
addStr = \肉、鱼类、蛋类、乳制品、\
} else {
if (Heat1 == \偏高\蛋白质多 {
cutStr += \鱼类、\
}
else if (Heat1 == \偏低\蛋白质少 {
addStr += \鱼类、\ }
if (Heat2 == \偏高\脂肪多 {
cutStr += \乳制品类、\
}
else if (Heat2 == \偏低\脂肪少 {
addStr += \乳制品类、\ }
}
if (Heat3 == \偏高\ {
cutStr += \蔬菜类、\ }
else if (Heat3 == \偏低\ {
addStr += \鲜果、蔬菜类、\ }
if (addStr != \ {
sbStr.Append(\建议适当\ if (addStr != \ {
addStr = addStr.Substring(0, addStr.Length - 1); sbStr.AppendFormat(\增加{0}\ }
if (cutStr != \ {
cutStr = cutStr.Substring(0, cutStr.Length - 1); if (addStr != \ {
sbStr.AppendFormat(\,减少{0}\ } else {
sbStr.AppendFormat(\减少{0}\ } }
sbStr.Append(\摄入量。\ }
#endregion }
#region //其它元素判断
正在阅读:
装修合同范本简单版装修合同模板【通用版】08-01
动力车间事故预案04-20
以实物资产投资的涉税问题03-30
作文部分 训练四05-20
安全经济毕业论文(1) - 图文03-08
幼儿园小班个案分析(精选10则)08-01
学校体卫艺述职报告04-13
2018部编二年级语文下册教学进度安排表及全册教案03-08
小学数学作业有效讲评之我见08-12
- 计算机试题
- 【2012天津卷高考满分作文】鱼心人不知
- 教育心理学历年真题及答案--浙江教师资格考试
- 20180327-第六届“中金所杯”全国大学生金融知识大赛参考题库
- 洪林兴达煤矿2018年度水情水害预测预报
- 基本要道讲义
- 机电设备安装试运行异常现象分析与对策
- 《有机化学》复习资料-李月明
- 非常可乐非常MC2--非常可乐广告策划提案 - 图文
- 2011中考数学真题解析4 - 科学记数法(含答案)
- 企业人力资源管理师三级07- 09年真题及答案
- 基于单片机的光控自动窗帘控制系统设计说明书1 - 图文
- 20160802神华九江输煤皮带机安装方案001
- (共53套)新人教版一生物必修2(全册)教案汇总 word打印版
- 2014行政管理学总复习
- 中国银监会关于加强地方政府融资平台贷款风险监管的指导意见
- 民宿酒店核心竞争与研究
- 游园活动谜语大全2012
- 河南省天一大联考2016届高三英语5月阶段性测试试题(六)(A卷)
- 小型超市管理系统毕业论文详细设计4
- 和合
- 并行
- 并列
- 导出
- Npoi
- word
- 2.0
- 第五次作业--资本结构决策及答案
- 2017江西政法干警考试,经济及社会政法干警时政热点
- 基于MB-LBP人脸检测算法
- 上海建筑设计知识:近现代城市规划理论考试试卷
- 历年数学一试题及答案
- 人教版高中数学《数列》(两课时)教学设计
- 10Kv氧化锌避雷器试验作业标准卡(空)
- 小学数学课堂教学情境创设的研究与实完成课题的可行性分析
- 信号工考试卷
- 传热学课后习题
- 网上电脑销售系统-论文 - 图文
- 单选题目
- 昆明市土地储备管理办法(97号令)
- 2015-2016高中化学 第1章 物质结构元素周期律章末知识整合学案 新人教版必修2
- 社区外国人管理问题探究
- 内蒙古“十三五”经济社会发展目标和指标体系研究
- 实习周记法学专业
- 2019-2020学年幼儿园大班(下册)开学检测试题 附答案
- 1思考题答案所有 微电子
- 通信原理实验-BPSK传输 - 图文