概述
在最近做项目中遇到了计算总和的要求,项目的要求是显示出中国电信(时长)+ 中国移动(时长)+ 中国联通(时长)+ 中国网通(时长)+ 中国铁通(时长)= 他们相加的合计(时长)也就是说他们相加起来的总的时长查询完成是没问题,但在用了浮点计算出之后,在查询这方面是没问题的搭是在我写导出Excel表格中就遇到了样的一个问题,在写入表格数据中的写入数据报错说 参数1:无法从decimal?转换为bouble类型如图所示:
那问题该怎么解决呢?下面就来解决一下吧。首先还是一样的要把数据查出来,之后就是导出Excel的代码。如下就是查询的代码:
public ActionResult DaoChuBranchVie(LayuiTablePage layuiTablePage, string AreaName) {
List listBranchVie = (from tbBranchVie in myModel.B_BranchVie
join tbArea in myModel.D_Area on tbBranchVie.AreaID equals tbArea.AreaID
select new BranchVieVo{
BranchVieID = tbBranchVie.BranchVieID,//部门竞争ID
Telecom = tbBranchVie.Telecom,//中国电信(时长)
Foot1=tbBranchVie.Telecom+ tbBranchVie.Move+ tbBranchVie.Link+ tbBranchVie.NetOpen + tbBranchVie.IronOpen,
Move = tbBranchVie.Move,//中国移动(时长)
Link = tbBranchVie.Link,//中国联通(时长)
NetOpen = tbBranchVie.NetOpen,//中国网通(时长)
IronOpen = tbBranchVie.IronOpen,//中国铁通(时长)
AreaID = tbBranchVie.AreaID,//区域ID
AreaName = tbArea.AreaName//所属区域
}).ToList();
if (!string.IsNullOrEmpty(AreaName)) {
listBranchVie = listBranchVie.Where(m => m.AreaName.Contains(AreaName)).ToList();
}
如下就是导出Excel的代码:
//1、创建工作簿
HSSFWorkbook exBook = new HSSFWorkbook();
//2、创建工作表
ISheet sheet = exBook.CreateSheet(“部门竞争日报”);
//3、设计表头
//3.1、创建表头
IRow headRow = sheet.CreateRow(0);
//3.2、设计表头字段已省略一些
headRow.CreateCell(0).SetCellValue(“所属区域”);
headRow.CreateCell(1).SetCellValue(“合计”);
//4、写入表格数据 已省略一些
for (int i = 0; i < listBranchVie.Count(); i++)
{ 在这for循环用var 声明自定义字段= Convert意思:CONVERT() 函数是把日期转换为新数据类型的通用函数或CONVERT() 函数可以用不同的格式显示日期/时间数据。之后把我们要转换的ToDouble类型是从(listBranchVie[i].Foot1);的。以此类推你有几个就写几个让他们转换就可以了。
var A = Convert.ToDouble(listBranchVie[i].Foot1);
var B = Convert.ToDouble(listBranchVie[i].Telecom);
var C = Convert.ToDouble(listBranchVie[i].Move);
//4.1、创建行
IRow rowTemp = sheet.CreateRow(i + 1);
//4.2、写入数据已省略一些
在这你就把你上面声明的自定义字段放在导出方法的位置里面如下所示:
rowTemp.CreateCell(0).SetCellValue(listBranchVie[i].AreaName);//所属区域
rowTemp.CreateCell(1).SetCellValue(A);//合计
rowTemp.CreateCell(2).SetCellValue(B);//中国电信
}//5、将Excel文件转化为文件流输出
MemoryStream exStream = new MemoryStream();
exBook.Write(exStream);
//6、输出之前调用Seek(偏移量,游标位置)方法:确定流开始的位置
exStream.Seek(0, SeekOrigin.Begin);
//7、为下载的Excel文件命名
string exFileName = “部门竞争日报” + DateTime.Now.ToString(“yyyyMMddHHmmss”) + “.xls”;
//返回 在页面输出。如下图为效果图:
return File(exStream, “application/vnd.ms-excel”, exFileName);
}
最后
以上就是无辜枫叶为你收集整理的用float类型计算的问题的全部内容,希望文章能够帮你解决用float类型计算的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复