趴着走走 2017-02-08 02:50 采纳率: 100%
浏览 2988
已采纳

jacob,如何在word文档里生成柱状的统计图,以及图表的样式设置,如下图的样式,求源代码,谢谢了

图片说明
这是一部分自己做的代码,但是不知道怎么设置统计图的样式
public void setChartDate(String filepath,String pos,List 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;
    }
}

求大神帮忙解决一下,万分感谢
  • 写回答

2条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥15 如何修改损失函数以及代码讲解
      • ¥15 有偿咨询!!程序的小数点怎么取到后四位啊!
      • ¥15 IRS智能反射面相关文章代码
      • ¥15 landsat5的两幅影像镶嵌前波段是123457,为什么镶嵌后波段变成了123456?
      • ¥15 关于#matlab#中fmincon函数如何处理约束问题?
      • ¥60 Java程序,控制台输出
      • ¥40 cad 平面线段偏移计算方法
      • ¥20 深度学习可视化工具的使用
      • ¥15 本地的远程软件连接不上华为云服务器
      • ¥15 关于#android#的问题:清华源下载的AOSP在repo sync的时候报错