java用jacob生成word文件 10C

在生成word文件的时候,单个可以生成,批量生成的时候,就会报错表格需要的集合不存在,我的for循环是正常的。

    public ActionForward exportWord(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

            //这部分主要是获取前台数据
            String bpId = request.getParameter("bpId") == null ? "" : request.getParameter("bpId");
            String[] ids = request.getParameterValues("radio");//获取要申请id
            String zt = "仿宋_GB2312";
            request.getSession().setAttribute("proName", false);
            StringBuffer qiId = new StringBuffer();
            try {
                qiId.append(" from QualityInfo where 1=1");
                qiId.append(" and id in ( ");
                // 查询施工人员数据
                for(int i = 0 ;i<ids.length ; i++){
                    String workid = ids[i];
                    if( i != ids.length -1){
                        qiId.append("'"+workid+"' , ");
                    }else{
                        qiId.append("'"+workid+"' )");
                    }
                }
                //这是生成前八行需要的数据,后边的行数是动态生成的
                List<QualityInfo> qualityInfo = (List<QualityInfo> )commonService.find(qiId.toString());//获取检修计划单个信息


                // 从这里开始创建表格
                WordOperator wo = new WordOperator(false);
                wo.createNewDocument();
                wo.setParagraphsProperties(1, 0, 0, 0, 0);//设置段落格式,不设置 自动左对齐,现在居中对齐。
                wo.setFont(true, false, false, null, "16", zt);// 红1,0,0,0白16,77,72,15,这是设置字体样式的。
                wo.insertText("泉州石化检修质量验收记录表");
                wo.nextLine();
                wo.moveDown(1);


                //获取每个表的设备名称
                //获取生产运行部
                List<Department> dyList = (List<Department>)PublicTools.getAllDYList();
                String dyName="";

                //获取装置
                List<Department> zzList = (List<Department>)PublicTools.getAllZz();
                String zzName="";

                //开始往word表格内填写数据
                if(qualityInfo != null && qualityInfo.size()!=0){
                    for(int i=0;i<qualityInfo.size();i++){
                        //获取每个表格的检查标准个数,为自动生成列做准备
                        String countSql="select count(id) cou from psjx_qualityinspectionplan where qfid='"+qualityInfo.get(i).getId()+"'";
                        List countList = commonService.getJDBC(countSql);
                        Map countMap = (Map)countList.get(0);
                        String countQl = countMap.get("cou").toString();
                        int countTotal = Integer.parseInt(countQl);

                        String deviceName=PublicTool.deviceType(qualityInfo.get(i).getDeviceName());
                        if(zzList!=null && zzList.size()!=0){
                            for(int d=0;d<zzList.size();d++){
                                if(zzList.get(d).getDepartmentId().equals(qualityInfo.get(i).getProcessUnits())){
                                    zzName=zzList.get(d).getDepartmentName();
                                }
                            }
                        }
                        if(dyList!=null && dyList.size()!=0){
                            for(int d=0;d<dyList.size();d++){
                                if(dyList.get(d).getDepartmentId().equals(qualityInfo.get(i).getBuildingUser())){
                                    dyName=dyList.get(d).getDepartmentName();
                                }
                            }
                        }

                        //表格
                        //第一行
                        wo.setFont(false, false, false, null, "10", zt);//设置当前选定内容的字体,设置表格内的文字样式
                        wo.createTable("table" + i + 1, 12, 8 +(countTotal));//创建表格,位置,列数,行数
                        wo.mergeCell(i+1, 1, 1, 1, 2);//动态生成的时候,每次到这里就会报错。
                        wo.mergeCell(i+1, 1, 2, 1, 11);
                        wo.putTxtToCell(i+1, 1, 2, "中化泉州石化有限公司管理体系");
                        wo.moveDown(1);//换行

                        //第二行
                        wo.mergeCell(i+1, 2, 1, 2, 2);
                        wo.mergeCell(i+1, 2, 1, 1, 1);
                        wo.mergeCell(i+1, 2, 2, 2, 11);
                        wo.putTxtToCell(i+1, 2, 2, deviceName+"质量验收记录表");
                        wo.moveDown(1);//换行

                        //第三行
                        wo.mergeCell(i+1, 3, 1, 3, 2);//第三行的第一列和第二列合并,
                        wo.mergeCell(i+1, 3, 1, 1, 1);
                        wo.putTxtToCell(i+1, 3, 2, "记录编号");//第三行的第二列写入
                        wo.mergeCell(i+1, 3, 3, 3, 5);//第三行的第三列到第五列合并
                        wo.putTxtToCell(i+1, 3, 3, qualityInfo.get(i).getRecordNumber()== null?"":qualityInfo.get(i).getRecordNumber());//第三行的第三列写入
                        wo.mergeCell(i+1, 3, 4, 3, 5);
                        wo.putTxtToCell(i+1, 3, 4, "使用单位");
                        wo.mergeCell(i+1, 3, 5, 3, 8);
                        wo.putTxtToCell(i+1, 3, 5, dyName);
                        wo.moveDown(1);//换行

                        //第四行
                        wo.mergeCell(i+1, 4, 1, 4, 2);
                        wo.putTxtToCell(i+1, 4, 1, "生产装置");
                        wo.putTxtToCell(i+1, 4, 2, zzName);
                        wo.putTxtToCell(i+1, 4, 3, "设备位号/名称");
                        wo.mergeCell(i+1, 4, 4, 4, 7);
                        wo.putTxtToCell(i+1, 4, 4, qualityInfo.get(i).getSbmcs() == null ? "" :qualityInfo.get(i).getSbmcs() );
                        wo.mergeCell(i+1, 4, 5, 4, 6);
                        wo.putTxtToCell(i+1, 4, 5, "设备标识");
                        wo.mergeCell(i+1, 4, 6, 4, 7);
                        wo.putTxtToCell(i+1, 4, 6, PublicTool.deviceType(qualityInfo.get(i).getDeviceNumber() == null?"":qualityInfo.get(i).getDeviceNumber()));
                        wo.moveDown(1);//换行

                        //第五行
                        wo.mergeCell(i+1, 5, 1, 5, 2);
                        wo.putTxtToCell(i+1, 5, 1, "检修内容简述");
                        wo.mergeCell(i+1, 5, 2, 5, 7);
                        wo.putTxtToCell(i+1, 5, 2, qualityInfo.get(i).getSketch() == null ? "": qualityInfo.get(i).getSketch());
                        wo.mergeCell(i+1, 5, 3, 5, 4);
                        wo.putTxtToCell(i+1, 5, 3, "检修类别");
                        wo.mergeCell(i+1, 5, 4, 5, 5);
                        wo.putTxtToCell(i+1, 5, 4, PublicTool.deviceType(qualityInfo.get(i).getClassification() == null ? "" : qualityInfo.get(i).getClassification()));
                        wo.moveDown(1);//换行
                        //第六行
                        wo.mergeCell(i+1, 6, 1, 6, 2);
                        wo.putTxtToCell(i+1, 6, 1, "检修通知单号");
                        wo.putTxtToCell(i+1, 6, 2, qualityInfo.get(i).getInform() == null ?"": qualityInfo.get(i).getInform());
                        wo.putTxtToCell(i+1, 6, 3, "检修工单号");
                        wo.mergeCell(i+1, 6, 4, 6, 5);
                        wo.putTxtToCell(i+1, 6, 4, qualityInfo.get(i).getWorkNumber() == null ?"": qualityInfo.get(i).getWorkNumber());
                        wo.mergeCell(i+1, 6, 5, 6, 7);
                        wo.putTxtToCell(i+1, 6, 5, "检修开始结束时间");
                        wo.mergeCell(i+1, 6, 6, 6, 8);
                        wo.putTxtToCell(i+1, 6, 6, DateUtil.getDate(DateUtil.getDateFromTs( qualityInfo.get(i).getBeginTime()))+"~"+DateUtil.getDate(DateUtil.getDateFromTs( qualityInfo.get(i).getEndTime())));
                        wo.moveDown(1);//换行

                        //第七行
                        wo.putTxtToCell(i+1, 7, 1, "序号");
                        wo.putTxtToCell(i+1, 7, 2, "检查项目");
                        wo.mergeCell(i+1, 7, 3, 7, 4);
                        wo.putTxtToCell(i+1, 7, 3, "检查标准");
                        wo.putTxtToCell(i+1, 7, 4, "控制级别");
                        wo.putTxtToCell(i+1, 7, 5, "检查结果");
                        wo.mergeCell(i+1, 7, 6, 7, 9);
                        wo.putTxtToCell(i+1, 7, 6, "检查确认人");
                        wo.putTxtToCell(i+1, 7, 7, "检查时间");
                        wo.putTxtToCell(i+1, 7, 8, "备注");
                        wo.moveDown(1);//换行

                        //第八行
                        wo.mergeCell(i+1, 8, 1, 7, 1);
                        wo.mergeCell(i+1, 8, 2, 7, 2);
                        wo.mergeCell(i+1, 8, 3, 8, 4);
                        wo.mergeCell(i+1, 8, 3, 7, 3);
                        wo.mergeCell(i+1, 8, 4, 7, 4);
                        wo.mergeCell(i+1, 8, 5, 7, 5);
                        wo.putTxtToCell(i+1, 8, 6, "施工单位");
                        wo.mergeCell(i+1, 8, 7, 8, 8);
                        wo.putTxtToCell(i+1, 8, 7, "生产单元");
                        wo.putTxtToCell(i+1, 8, 8, "设备工程部");
                        wo.mergeCell(i+1, 8, 9, 7, 7);
                        wo.mergeCell(i+1, 8, 10, 7, 8);
                        wo.moveDown(1);//换行



                        //这里是自动生成的行
                        List Kzjblist = SysCodeConstant.getCodeList(SysCodeConstant.SBZLJCKZJB);//控制级别
                        String kzjb="";
                        List<QualityInspectionPlan> QualityInspectionPlanList = (List<QualityInspectionPlan>)commonService.find(" from QualityInspectionPlan where qfId = '"+qualityInfo.get(i).getId()+"' order by inspectionItem");//获取质量检修标准id集合
                        List<String> qaaIdList= new ArrayList<String>();
                        if(QualityInspectionPlanList!= null && QualityInspectionPlanList.size()!=0){
                            for(int q=0; q<QualityInspectionPlanList.size();q++){
                                wo.putTxtToCell(i+1, 8+q+1, 1, q+1+"");
                                wo.putTxtToCell(i+1, 8+q+1, 2, QualityInspectionPlanList.get(q).getInspectionItem()==null ? "":QualityInspectionPlanList.get(q).getInspectionItem() );
                                wo.mergeCell(i+1, 8+q+1,3 , 8+q+1, 4);
                                wo.putTxtToCell(i+1, 8+q+1, 3, QualityInspectionPlanList.get(q).getInspectionStandard()==null?"":QualityInspectionPlanList.get(q).getInspectionStandard());
                                 if( Kzjblist!=null && Kzjblist.size()>0 ){
                                        for(int j=0;j<Kzjblist.size();j++){
                                            Map code=(Map)Kzjblist.get(j);
                                            String name  = code.get("name").toString();
                                            String value = code.get("value").toString();
                                            if(QualityInspectionPlanList.get(q).getControlHierarchy() != null){
                                                if(QualityInspectionPlanList.get(q).getControlHierarchy().equals(value)){
                                                    kzjb = name;
                                                }
                                            }

                                        }
                                    }
                                 wo.putTxtToCell(i+1, 8+q+1, 4, kzjb);
                                 wo.putTxtToCell(i+1, 8+q+1, 5, QualityInspectionPlanList.get(q).getCheckResult()==""?"":QualityInspectionPlanList.get(q).getCheckResult());
                                 wo.putTxtToCell(i+1, 8+q+1, 6, QualityInspectionPlanList.get(q).getWorkUnit()==null?"":QualityInspectionPlanList.get(q).getWorkUnit());
                                 wo.mergeCell(i+1, 8+q+1,7 , 8+q+1, 8);
                                 wo.putTxtToCell(i+1, 8+q+1, 7, QualityInspectionPlanList.get(q).getProcessUnits()==null?"":QualityInspectionPlanList.get(q).getProcessUnits());
                                 wo.putTxtToCell(i+1, 8+q+1, 8, QualityInspectionPlanList.get(q).getProductionDepartment()==null ?"":QualityInspectionPlanList.get(q).getProductionDepartment());
                                if(QualityInspectionPlanList.get(q).getCheckTime()!=null){
                                     wo.putTxtToCell(i+1, 8+q+1, 9, DateUtil.getDate(DateUtil.getDateFromTs( QualityInspectionPlanList.get(q).getCheckTime())));
                                }else{
                                    wo.putTxtToCell(i+1, 8+q+1, 9, "");
                                }
                                 wo.putTxtToCell(i+1, 8+q+1, 10, QualityInspectionPlanList.get(q).getRemark()==null?"":QualityInspectionPlanList.get(q).getRemark());
                                 wo.moveDown(1);//换行
                            }
                        }
                        wo.nextLine();
                    }
                }

                //下载
                String path = ConfigUtil.getPropertyValueByName("FILE_PATH") + "\\泉州石化质量检修表.doc";
                System.out.println("path="+path);
                wo.save(path);
                wo.close();

                // path是指欲下载的文件的路径。
                File file = new File(path);
                // 取得文件名。
                String filename = file.getName();
                // 取得文件的后缀名。
                String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();

                // 以流的形式下载文件。
                InputStream fis = new BufferedInputStream(new FileInputStream(path));
                byte[] buffer = new byte[fis.available()];
                fis.read(buffer);
                fis.close();
                // 清空response
                response.reset();
                // 设置response的Header
                String fname = new String((filename ).getBytes(), "ISO-8859-1");
                response.addHeader("Content-Disposition", "attachment;filename=" + fname);
                response.addHeader("Content-Length", "" + file.length());
                OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
                response.setContentType("application/octet-stream");
                toClient.write(buffer);
                toClient.flush();
                toClient.close();
                System.gc();
                file.delete();
            }catch (Exception e) {
                e.printStackTrace();
            }finally{
                request.getSession().setAttribute("proName", true);
            }
            return null;
        }

2个回答

贴下代码 老哥 不然没法看呀

qq_37985878
qq_37985878 老哥,代码上了,您看下
2 年多之前 回复

没代码。。很难知道问题呀

HUSHILIN001
mkmin 回复qq_37985878: 很抱歉了。。。看不出来。。。看来我对他还不够了解,抱歉了,没能帮到你
2 年多之前 回复
HUSHILIN001
mkmin 回复qq_37985878: 很抱歉了。。。看不出来。。。看来我对他还不够了解,抱歉了,没能帮到你
2 年多之前 回复
qq_37985878
qq_37985878 老哥,代码上了,您看下
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java中使用jacob插件生成word文件乱码
java中使用jacob插件生成word文件,使用的是先生成rtf再生成Word,当前在中文操作系统下完全正常,但是在英文和繁体操作系统下生成的Word文件内容中汉字显示乱码~ 求大神指导!
java中jacob操作word文档
org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.ExceptionInInitializerError Caused by: java.lang.ExceptionInInitializerError Caused by: java.lang.IllegalStateException: Can't find META-INF/JacobVersion.properties using JacobReleaseInfo.class.getClassLoader().getResourceAsStream() 怎么解决?????????????????????
java 使用jacob组件操作word文件,怎么勾选word文件的复选框?
如题,jacob都是发命令式的编程,不知道命令就没得搞,找了一下也没有这方面的资料,哪位大神知道怎么勾选复选框?
jacob生成word文档报错
jacob生成word时候,单个可以生成,批量生成报错集合所要求的成员不存在。 ``` ```
java代码中用jacob操作word,怎么实现word中的组合键效果?
我想用jacob实现word中按ctrl+shift+enter组合键的作用。 原因:我在合并两个word时,word文档1需要插入到word文档2中,而word文档2的第一页又是一张表格。 需要在这个表格的前面加上一行,就需要按ctrl+shift+enter,使得多出一行,然后在这个多的一行上面再插入word文档1,这样才能满足要求。 现在的问题在于,不知道怎么用jacob来达到与在word中按ctrl+shift+enter组合键同样的效果。
Java使用jacob调用dll
想通过jacob从dll文件中调用dll了面的一个集合缺一直报错求大神帮助
java项目 刚刚用Jacob实现了word Excel转PDF,但linux服务器下怎么办。。。
java项目 刚刚用Jacob实现了word Excel转PDF,但网上大家说Jacob不能在linux下使用,那么linux服务器下怎么办啊。。。
如何使用jacob在word中的指定位置插入图片
项目中需要将客户提交的文字图片 按照一定格式插入一个word模板 例如 如何将图片插入表格单元格的中心或者右下角位置 多谢!
jacob 生成word时提示 内存不足
环境是:win2008 r2 jdk: 1.7(64bit) tomcat: tomcat7.0(64bit) com.jacob.com.ComFailException: Invoke of: Add Source: Microsoft Word Description: 内存不足,请现在保存文档。 at com.jacob.com.Dispatch.invokev(Native Method) at com.jacob.com.Dispatch.invokev(Dispatch.java:625) at com.jacob.com.Dispatch.invoke(Dispatch.java:498).... 求大神们帮个忙,小弟先谢谢了。
Java jacob怎么获得Word文档一段一段内容
Java jacob怎么获得Word文档一段一段内容,我现在能够循环一段一段Word文档段落,但是怎么获得这一段的内容
jacob给word文档添加水印,怎样能让水印铺满,而不是一页只有一条水印
jacob给word文档添加水印,怎样能让水印铺满,而不是一页只有一条水印
java生成word有什么好的方式?
最近项目遇到要生成word文档,我最开始用的是poi,中途发现poi对word的支持不是很好,于是我又用了Jacob,这个是能做出想要的样子,但是Jacob启动office进程速度很慢,如果打开一个有问题的word文档的话,office会在服务器上弹出一个提示框,这样java就关闭不了这个进程。现在我准备把word另存为XML后然后用free marker来生成,想知道有没有大神知道word的XML语法的文档啊,或者是更好的生成word的方法。
使用Jacob操作word 添加表格时 如何给表格添加边框线
``` /** *//** * 创建表格 * * @param pos 位置 * @param cols 列数 * @param rows 行数 */ public void createTable(String pos, int numCols, int numRows) { if (!find(pos)) { Dispatch tables = Dispatch.get(document, "Tables").toDispatch(); Dispatch range = Dispatch.get(selection, "Range").toDispatch();Dispatch table = Dispatch.call(tables, "Add", range, new Variant(5),new Variant(5)).toDispatch(); Dispatch newTable = Dispatch.call(tables, "Add", range, new Variant(numRows), new Variant(numCols)).toDispatch(); Dispatch.call(selection, "MoveRight"); } } ``` 上面是代码 生成的表格时没有边框线的 请问怎么设置边框线
jacob操作word添加页脚二维码图片
java 使用jacob控制有内容的word文档,动态添加页脚二维码图片
linux java word jacob
在window平台使用jacb完成操作word书签,现在服务器是linux系统, 想解析了数据库的Blob字段保存为可编辑有格式的文本?
java操作word文档,使用jacob怎么获取word的全部文本?
java操作word文档,使用的是jacob,现在要读取一些word里的一些内容,在网上没有找到读取的方法 怎么才能读取到word文档中的所有文本啊,求方法
如何用java 通过jacob 调用opendss
利用java通过Jacob调用opendss 实现数据处理。。。方法行的通不?有没有做过的?应该如何处理啊。。
jacob,如何在word文档里生成柱状的统计图,以及图表的样式设置,如下图的样式,求源代码,谢谢了
![图片说明](https://img-ask.csdn.net/upload/201702/08/1486522175_674288.png) 这是一部分自己做的代码,但是不知道怎么设置统计图的样式 public void setChartDate(String filepath,String pos,List<Object[]> list){ ActiveXComponent word=null; Dispatch doc=null; Dispatch graph=null; try{ word = new ActiveXComponent("Word.Application");//开启 //得到word对象的处于活动状态的Document Dispatch documents = Dispatch.get(word,"Documents").toDispatch(); //打开已经存在的word对象如果是新建一个word文件的话,需要将Open换成Add,然后去掉filepath参数即可 doc = Dispatch.call(documents, "Open",filepath).toDispatch(); //得到该对象的编辑区域 Dispatch selection = Dispatch.get(word, "Selection").toDispatch(); //设置该对象不可见 Dispatch.put(word, "Visible", new Variant(false)); //插入ole对象 Dispatch inLine =Dispatch.get(selection,"InlineShapes").toDispatch(); graph=Dispatch.call(inLine, "AddOLEObject","MSGraph.Chart.8").toDispatch(); //设置图表的高度 Dispatch.put(graph, "Height", new Variant(200.00)); //设置表的宽度 Dispatch.put(graph, "Width", new Variant(350.00)); //格式化图表 Dispatch oleFormat = Dispatch.call(graph,"OLEFormat").toDispatch(); Dispatch obj = Dispatch.call(oleFormat, "Object").toDispatch(); Dispatch dataSheet = Dispatch.get(obj, "Application").toDispatch(); Dispatch dataSheet2 = Dispatch.get(dataSheet, "dataSheet").toDispatch(); //得到该图表的数据表 //得到数据表的单元格 Dispatch cells = Dispatch.get(dataSheet2, "Cells").toDispatch(); //得到数据表的行 //Dispatch rows= Dispatch.get(cells, "Rows").toDispatch(); // System.out.println(rows); //清空数据表行的默认数据 //Dispatch.call(rows, "Clear"); //for循环添加数据 for(int i=0;i<list.size();i++){ Object[] o=list.get(i); for(int j=0;j<o.length;j++){ Dispatch item = Dispatch.call(cells, "Item",new Variant(i+2),new Variant(j+2)).toDispatch(); Dispatch.put(item, "value", o[i]); } } if (find(selection,pos)) { Dispatch textRange = Dispatch.get(selection, "Range") .toDispatch(); Dispatch.call(textRange, "Paste"); } }catch(Exception e){ e.printStackTrace(); }finally{ //关闭word文档,参数表示是否保存 Dispatch.call(doc, "Close",new Variant(true)); //退出word文档,这步和关闭一样,因为只关闭不退出,该word的进程不会结束 Dispatch.call(word, "Quit",new Variant(0)); //释放word编辑的时候引用的其他资源,比如Graph.exe进程 ComThread.Release(); doc=null; graph=null; word=null; } } 求大神帮忙解决一下,万分感谢
jacob操纵word文件中控制行间距的问题
代码如下:如果参数lineSpace=4;及行间距设为固定值,但在word中设为固定值后, 还要设置一个磅值,请问在下面代码中如何设置磅值?或者有大侠知道磅值的参数名称是什么? /** * 对当前段落进行格式化 * * @param align * 设置排列方式 默认:居左 0:居左 1:居中 2:居右 3:两端对齐 4:分散对齐 * @param lineSpace * 设置行间距 默认:1.0 0:1.0 1:1.5 2:2.0 3:最小值 4:固定值 */ public void setParaFormat( int align, int lineSpace) { Dispatch selection = Dispatch.get(MsWordApp, "Selection").toDispatch(); if (align < 0 || align > 4 ) { align = 0 ; } if (lineSpace < 0 || lineSpace > 4 ) { lineSpace = 0 ; } Dispatch alignment = Dispatch.get(selection, "ParagraphFormat" ) .toDispatch(); Dispatch.put(alignment, "Alignment" , align); Dispatch.put(alignment, "LineSpacingRule" , new Variant(lineSpace)); }
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
Linux(服务器编程):15---两种高效的事件处理模式(reactor模式、proactor模式)
前言 同步I/O模型通常用于实现Reactor模式 异步I/O模型则用于实现Proactor模式 最后我们会使用同步I/O方式模拟出Proactor模式 一、Reactor模式 Reactor模式特点 它要求主线程(I/O处理单元)只负责监听文件描述符上是否有事件发生,有的话就立即将时间通知工作线程(逻辑单元)。除此之外,主线程不做任何其他实质性的工作 读写数据,接受新的连接,以及处...
为什么要学数据结构?
一、前言 在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件: 1) 能够熟练地选择和设计各种数据结构和算法 2) 至少要能够熟练地掌握一门程序设计语言 3) 熟知所涉及的相关应用领域的知识 其中,后两个条件比较容易实现,而第一个...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n
进程通信方式总结与盘点
​ 进程通信是指进程之间的信息交换。这里需要和进程同步做一下区分,进程同步控制多个进程按一定顺序执行,进程通信是一种手段,而进程同步是目标。从某方面来讲,进程通信可以解决进程同步问题。 ​ 首先回顾下我们前面博文中讲到的信号量机制,为了实现进程的互斥与同步,需要在进程间交换一定的信息,因此信号量机制也可以被归为进程通信的一种方式,但是也被称为低级进程通信,主要原因为: 效率低:一次只可操作少量的...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
听说了吗?阿里双11作战室竟1根网线都没有
双11不光是购物狂欢节,更是对技术的一次“大考”,对于阿里巴巴企业内部运营的基础保障技术而言,亦是如此。 回溯双11历史,这背后也经历过“小米加步枪”的阶段:作战室从随处是网线,交换机放地上的“一地狼藉”;到如今媲美5G的wifi网速,到现场却看不到一根网线;从当年使用商用AP(无线路由器),让光明顶双11当天断网一分钟,到全部使用阿里自研AP……阿里巴巴企业智能事业部工程师们提供的基础保障...
在阿里,40岁的奋斗姿势
在阿里,40岁的奋斗姿势 在阿里,什么样的年纪可以称为老呢?35岁? 在云网络,有这样一群人,他们的平均年龄接近40,却刚刚开辟职业生涯的第二战场。 他们的奋斗姿势是什么样的呢? 洛神赋 “翩若惊鸿,婉若游龙。荣曜秋菊,华茂春松。髣髴兮若轻云之蔽月,飘飖兮若流风之回雪。远而望之,皎若太阳升朝霞;迫而察之,灼若芙蕖出渌波。” 爱洛神,爱阿里云 2018年,阿里云网络产品部门启动洛神2.0升...
关于研发效能提升的思考
研发效能提升是最近比较热门的一个话题,本人根据这几年的工作心得,做了一些思考总结,由于个人深度有限,暂且抛转引入。 三要素 任何生产力的提升都离不开这三个因素:人、流程和工具,少了其中任何一个因素都无法实现。 人,即思想,也就是古人说的“道”,道不同不相为谋,是制高点,也是高层建筑的基石。 流程,即方法,也是古人说的“法”。研发效能的提升,也就是要提高投入产出比,既要增加产出,也要减...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆  每天早上8:30推送 作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯
程序员该看的几部电影
##1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?
入职阿里5年,他如何破解“技术债”?
简介: 作者 | 都铎 作为一名技术人,你常常会听到这样的话: “先快速上线” “没时间改” “再缓一缓吧” “以后再解决” “先用临时方案处理” …… 当你埋下的坑越来越多,不知道哪天哪位同学就会踩上一颗雷。特别赞同“人最大的恐惧就是未知,当技术债可说不可见的时候,才是最让人不想解决的时候。” 作为一个程序员,我们反对复制粘贴,但是我们经常会见到相似的代码,相同的二方包,甚至整个代码...
Python绘图,圣诞树,花,爱心 | Turtle篇
每周每日,分享Python实战代码,入门资料,进阶资料,基础语法,爬虫,数据分析,web网站,机器学习,深度学习等等。 公众号回复【进群】沟通交流吧,QQ扫码进群学习吧 微信群 QQ群 1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle()...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布了 2019年国民经济报告 ,报告中指出:年末中国大陆总人口(包括31个
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
2020年的1月,我辞掉了我的第一份工作
其实,这篇文章,我应该早点写的,毕竟现在已经2月份了。不过一些其它原因,或者是我的惰性、还有一些迷茫的念头,让自己迟迟没有试着写一点东西,记录下,或者说是总结下自己前3年的工作上的经历、学习的过程。 我自己知道的,在写自己的博客方面,我的文笔很一般,非技术类的文章不想去写;另外我又是一个还比较热衷于技术的人,而平常复杂一点的东西,如果想写文章写的清楚点,是需要足够...
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
Java坑人面试题系列: 包装类(中级难度)
Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/quiz-2。 这些问题的设计宗旨,主要是测试面试者对Java语言的了解程度,而不是为了用弯弯绕绕的手段把面试者搞蒙。 如果你看过往期的问题,就会发现每一个都不简单。 这些试题模拟了认证考试中的一些难题。 而 “中级(intermediate)” 和 “高级(ad
深度学习入门笔记(十八):卷积神经网络(一)
欢迎关注WX公众号:【程序员管小亮】 专栏——深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献。 2)本文仅供学术交流,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。 3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。 4)此属于第一版本,若有错误,还需继续修正与...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
节后首个工作日,企业们集体开晨会让钉钉挂了
By 超神经场景描述:昨天 2 月 3 日,是大部分城市号召远程工作的第一天,全国有接近 2 亿人在家开始远程办公,钉钉上也有超过 1000 万家企业活跃起来。关键词:十一出行 人脸...
Java基础知识点梳理
Java基础知识点梳理 摘要: 虽然已经在实际工作中经常与java打交道,但是一直没系统地对java这门语言进行梳理和总结,掌握的知识也比较零散。恰好利用这段时间重新认识下java,并对一些常见的语法和知识点做个总结与回顾,一方面为了加深印象,方便后面查阅,一方面为了学好java打下基础。 Java简介 java语言于1995年正式推出,最开始被命名为Oak语言,由James Gosling(詹姆
2020年全新Java学习路线图,含配套视频,学完即为中级Java程序员!!
新的一年来临,突如其来的疫情打破了平静的生活! 在家的你是否很无聊,如果无聊就来学习吧! 世上只有一种投资只赚不赔,那就是学习!!! 传智播客于2020年升级了Java学习线路图,硬核升级,免费放送! 学完你就是中级程序员,能更快一步找到工作! 一、Java基础 JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。 在Java基础板块中有6个子模块的学
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
你也能看懂的:蒙特卡罗方法
蒙特卡罗方法,也称统计模拟方法,是1940年代中期由于科学技术的发展和电子计算机的发明,而提出的一种以概率统计理论为指导的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法 蒙特卡罗方法可以粗略地分成两类:一类是所求解的问题本身具有内在的随机性,借助计算机的运算能力可以直接模拟这种随机的过程。另一种类型是所求解问题可以转化为某种随机分布的特征数,比如随机事件出现的概率,或...
相关热词 c# 为空 判断 委托 c#记事本颜色 c# 系统默认声音 js中调用c#方法参数 c#引入dll文件报错 c#根据名称实例化 c#从邮件服务器获取邮件 c# 保存文件夹 c#代码打包引用 c# 压缩效率
立即提问