excel基础入门教程 if 超过7层求精简

按要求从表中找出数据,再以Excel形式下载,操作步骤如下:Action类public ActionForward doBillPackDown(BActionContext context)
throws Exception {
HttpServletResponse response = context.getResponse();
response.setContentType("application/multipart");
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String TodayDate = sdf.format(new Date());
String fileName = "Download_BillPack_" + TodayDate + ".xls";
response.setHeader("Content-Disposition", "filename=" + fileName);
EPickService service = (EPickService) context.findService("epickService", EPickService.class);
String[] ids= (String[]) context.getRequest().getParameterValues("ids");
logger.info("======电子提单明细下载开始=======");
EPickSearchModel mdl = new EPickSearchModel();
mdl.setIds(ids);
HSSFWorkbook workbook = service.downBillPackDetail(mdl);
workbook.write(response.getOutputStream());
response.getOutputStream().flush();
response.getOutputStream().close();
}catch (Exception e) {
e.printStackTrace();
logger.error(e);
if (e.getMessage()!=null && e.getMessage().startsWith("msg:")) {
context.getRequest().setAttribute("msg",
e.getMessage().substring(4));
context.getRequest().setAttribute("error", e);
return context.findForward("fail");
} }ServiceImpl类:public HSSFWorkbook downBillPackDetail(EPickSearchModel mdl)
throws Exception {
return epickDao.downBillPackDetail(mdl); }DaoImpl类:public HSSFWorkbook downBillPackDetail(EPickSearchModel mdl)
throws Exception {
String[] billIds = mdl.getIds();
StringBuffer hql = new StringBuffer();
hql.append("select t.billId,t.orderNum,t.shopsign,t.specDesc,t.packId,t.netWeight,t.grossWeight" +
" from TplBillPack t where t.billNum in (");
int idSize = billIds.
for (int i=0; i&idSize-1;i++ ){
hql.append(""+new String(billIds[i]) + ",");
hql.append(""+new String(billIds[idSize-1]) + ")");
hql.append(" order by t.billId, t.orderNum");
List billPackList = this.queryByHql(hql.toString());
//实例化一个hssfworkbook对象
HSSFWorkbook wb = new HSSFWorkbook();
downBillPackDetailHelp(wb,billPackList);
}public void downBillPackDetailHelp(HSSFWorkbook wb, List billPackList)throws Exception{
Object [] objHead=getHeadFromBillPack();
LinkedList headList=(LinkedList)objHead[0];
//创建一个sheet
HSSFSheet sheet = wb.createSheet("contract_list");
//设置单元格的样式
HSSFCellStyle cellStyle0 = wb.createCellStyle();
cellStyle0.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cellStyle0.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
short rownum = 0;
//创建第一行
HSSFRow srow = sheet.createRow(rownum);
HSSFCell cellHead =//
srow = sheet.createRow( (short) rownum);//
srow.setHeightInPoints(30);//设置高度
cellHead = srow.createCell((short) 0);//
cellHead.setEncoding(HSSFCell.ENCODING_UTF_16);//设置编码//
cellHead.setCellValue("电子提单明细"); //单元格内容//
cellHead.setCellStyle(cellStyle0);
//单元格样式//
srow = sheet.createRow( (short) 1);//
//srow.setHeight( (short) 300); //
rownum++;//
srow = sheet.createRow(rownum);
for (int i = 0; i & headList.size(); i++){
HSSFCell cell = srow.createCell((short) (i));
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(headList.get(i).toString());
for(Iterator it = billPackList.iterator();it.hasNext();) {
Object[] obj = (Object[])it.next();
srow = sheet.createRow(rownum);
for (int j = 0; j & headList.size(); j++) {
HSSFCell cell=srow.createCell((short)j);
if(obj[j]==null)
cell.setCellValue("");
cell.setCellValue(obj[j].toString());
}catch(Exception e){
e.printStackTrace();
* 获取Excel第一行标题
*/ private Object []getHeadFromBillPack(){
List head =new LinkedList();
head.add("提单号");
head.add("合同号");
head.add("牌号");
head.add("规格");
head.add("捆包号");
head.add("净重");
head.add("毛重");
Object [] obj=new Object[1];
}jsp页面中的js代码:function billPackDown(){
var ids = document.getElementsByName('checkbox');
var ids_java = new Array();
var count = 0;
var msg = "";
if(ids.length == 0)
alert("现在没有记录信息,不能下载!");
for(i=0; i & ids. i++)
if(ids[i].checked)
ids_java.push(ids[i].value);
if(count & 1 || count & 5)
alert("电子提单明细下载需至少选择1条且不多于5条的提单记录!");
if (msg != ""){
msg += "请用户重新选择!";
alert(msg);
window.open('../ePick/ePickPrintManage.do?method=billPackDown&ids='+ids_java,'','width=800,height=500,top=100,left=150,scrollbars=yes,resizable=yes'); }
从JAVA往Excel导出数据
function JSONToExcelConvertor(JSONData, FileName, ShowLabel) {
//先转化json
var arrData = typeof JSOND...
导出功能相对于导入功能比较简单,具体介绍请看这篇文章:SpringBoot动态导入Excel文件到数据库1. 数据访问层import java.util.L
import org.spring...
jsp内容忽略,仅写个出发按钮:
JS导出Excel&&&
JS导出Word&&&
利用Aspose.Cells 导出数据到excel 。需要引入Aspose.Cells.
具体使用方法贴代码:
private string ExportProjectReportE...
转自:http://jingyan.baidu.com/article/e2e3bc1eda1423e3.html
SQL Server 2008 在Microsoft的数据平台...
在开发中我们经常遇到把数据导出到Excel中的需求,这里简单的描述下个人实现方式,提供了Excel2003
与Excel2007两种实现方式。实现如下:
1、接口类demo:
没有更多推荐了,已解决问题
在EXCEL2003中,如何实现IF函数在把7层嵌套都用完的情况下,实现更多的嵌套或判断?
浏览次数:1311
用手机阿里扫一扫
最满意答案
分段,比如=if(a1&10,0,if(a1&1,-1,if(a1&2,1&&&&)+IF(a1&20,0,if(a1&10,20,if(a1&11,21,if&&)+IF(a1&20,0,if(a1&20,30,if(a1&21,32,&&)也就是说,假设总共有30个判断,将这30个判断划分成5段,每段小于7堪套,在每段中,将其他段的设为0,然后将5段结果相加。当然,还有比较简单的办法,但要根据具体情况分析后,采取别的办法实现。这是我刚解决的一个问题,供你参考:【问题】如果D1=1,则提取F1的值,如果D1=2,提取G1值,如果D=3,提取H1的值&&,D1&30这个问题,如果用IF语句,堪套7层肯定不行,如果用上述方法也能解决,但仔细分析,实际上提取的值的单元格的列号与D1值是成正比关系的。【解决】=INDIRECT(&R1C&&D1+5,FALSE)这一个公式就全解决了。
答案创立者
以企业身份回答&
正在进行的活动
生意经不允许发广告,违者直接删除
复制问题或回答,一经发现,拉黑7天
快速解决你的电商难题
店铺优化排查提升2倍流量
擅长&nbsp 店铺优化
您可能有同感的问题
扫一扫用手机阿里看生意经
问题排行榜
当前问题的答案已经被保护,只有知县(三级)以上的用户可以编辑!写下您的建议,管理员会及时与您联络!
server is ok扫二维码下载作业帮
3亿+用户的选择
下载作业帮安装包
扫二维码下载作业帮
3亿+用户的选择
excel if函数超过7层,怎么改 公式承认是不对,想用除了IF以外的办法解决2 .f=4.5 会对应q=0.46,因为超过了4了嘛~(取大原则)f 0.2 4 5 6 8 10 10~12 12~14 14~16 16~20 q 0.4 0.45 0.5 0.55 0.61 0.67 0.74 0.81 0.88 0.98
作业帮用户
扫二维码下载作业帮
3亿+用户的选择
=LOOKUP(A1,{0.8,2,3,4,5,6,8,10,12,14,16,20},{0.4,0.45,0.5,0.55,0.61,0.67,0.74,0.81,0.88,0.98})这个函数可以解决你的问题,但可能在23456等这些区间边际的数上可能不符合你要求,可以用if嵌套一个lookup解决
边界数字23456,取小于等于号,例如:当f小于等于2时,q=0.4如何解决?
加个if判断,把边界数字等于几先规定好(也用lookup函数),然后再刚才的lookup判断区间,=IF(A1=OR(2,3,4,5,6,7,8),LOOKUP(A1,{2,3,4,5,6,7,8},{11,12,13,14,15,16,17}),LOOKUP(A1,{0.8,2,3,4,5,6,8,10,12,14,16,20},{0.4,0.45,0.5,0.55,0.61,0.67,0.74,0.81,0.88,0.98}))上面公式示例中规定了2,3,4,5,6,7,8分别等于11,12,13,14,15,16,17。
运行不了啊~~~~
我试了,可以。就是lookup加个if判断
为您推荐:
其他类似问题
扫描下载二维码查看: 990|回复: 5
请问如果采用if函数怎么样能做到超过7层嵌套的判断
阅读权限20
在线时间 小时
希望各位哥哥姐姐耐心解答,这是我第一次发帖,也是真心来学习的。
恭祝新年快乐,万事胜意。
谢谢各位!
阅读权限20
在线时间 小时
保存此帖,一年后看看我有多大的进步。
(38.32 KB, 下载次数: 1)
17:02 上传
阅读权限95
在线时间 小时
IF写多了,特别是超过四层以上的,就不利于阅读和写了,建议用其他函数代替,如lookup&&vlookup 等等。
阅读权限20
在线时间 小时
一般来说有如下办法
一、定义名称
二、使用&+&,&&&连接.
三、使用其他函数完成相应功能
::L 学习Excel第一步,学会使用搜索功能,例如
如何实现函数IF的嵌套超过七层?& &:
阅读权限20
在线时间 小时
我去找找看。
阅读权限90
在线时间 小时
换个excel&&2007 试试看
不过不建议 IF 嵌套3层以上
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师在excel里,运用多层IF函数,一定非要编辑栏里输入函数,而不能在插入-函数-IF输入吗?_百度知道
在excel里,运用多层IF函数,一定非要编辑栏里输入函数,而不能在插入-函数-IF输入吗?
=IF(AND(J6&0,J6&=2000),0,IF(AND(J6&00),ROUND((J6-,2),IF(AND(J6&00),ROUND((J6--25,2),IF(AND(J6&00),ROUND((J6-...
=IF(AND(J6&0,J6&=2000),0,IF(AND(J6&00),ROUND((J6-,2),IF(AND(J6&00),ROUND((J6--25,2),IF(AND(J6&00),ROUND((J6--125,2),IF(AND(J6&000),ROUND((J6--375,2),IF(AND(J6&2000),ROUND((J6--1375,2),IF(AND(J6&4000),ROUND((J6--3375,2),&&)))))))这个计算所得税的if函数 是否可以通过插入-函数-IF 进行多层嵌套
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
采纳数:9258
获赞数:33117
是的,只能手工输入了。楼上的公式也叫精简?精简的应该是。=ROUND(MAX((J6-*{1,2,3,4,5,6,7,8,9}-25*{0,1,5,15,55,135,255,415,615},0),2)
chendequan2008
chendequan2008
采纳数:460
获赞数:1750
你的公式可以精简下的! 不超过7层的是可以的! 07版的可以嵌套7层以上的公式! 试下这个公式! =IF(J6&=2000,0,IF(AND(J6&=2500),ROUND((J6-,2),IF(J6&=4000,ROUND((J6--25,2),IF(J6&=7000,ROUND((J6--125,2),IF(J6&=22000,ROUND((J6--375,2),IF(J6&=42000,ROUND((J6--1375,2),ROUND((J6--3375,2)))))))哦!你的公式果然可以用!学习了!小第甘拜下风!
loveruby521
loveruby521
采纳数:6085
获赞数:34451
=ROUND(MAX((J6-*{1,2,3,4,5,6}-25*{0,1,5,15,55,135,},0),2)搂主的只有6层,我的正好精简到位
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 excel表格常用技巧大全 的文章

 

随机推荐