使用npoi 导出可编辑的word柱状图,仅限于office 2007

这段代码展示了如何使用NPOI库在Word文档中创建一个可编辑的柱状图,适用于Office 2007。代码详细说明了页面设置、页眉页脚的创建以及柱状图数据的填充过程。
摘要由CSDN通过智能技术生成
 public static NPOI.XWPF.UserModel.XWPFDocument Createbar(String countent,Dictionary<String, IList<Double>> datas, IList<String> legend, XWPFDocument m_Docx, ST_LegendPos legendLocal, int w, int h,  String title)
        {


            //页面设置
            //A4:W=11906,h=16838
            //CT_SectPr m_SectPr = m_Docx.Document.body.AddNewSectPr();
            //m_Docx.Document.body.sectPr = new CT_SectPr();
            //CT_SectPr m_SectPr = m_Docx.Document.body.sectPr;
            //页面设置A4横向
            //m_SectPr.pgSz.w = (ulong)16838;
            //m_SectPr.pgSz.h = (ulong)11906;


            //创建页脚
            //CT_Ftr m_ftr = new CT_Ftr();
            //m_ftr.AddNewP().AddNewR().AddNewT().Value = "fff";//页脚内容
            //创建页脚关系(footern.xml)
            //XWPFRelation Frelation = XWPFRelation.FOOTER;
            //XWPFFooter m_f = (XWPFFooter)m_Docx.CreateRelationship(Frelation, XWPFFactory.GetInstance(), m_Docx.FooterList.Count + 1);
            //设置页脚
            //m_f.SetHeaderFooter(m_ftr);
            //CT_HdrFtrRef m_HdrFtr = m_SectPr.AddNewFooterReference();
            //m_HdrFtr.type = ST_HdrFtr.@default;
            //m_HdrFtr.id = m_f.GetPackageRelationship().Id;


            //创建页眉
            //CT_Hdr m_Hdr = new CT_Hdr();
            //m_Hdr.AddNewP().AddNewR().AddNewT().Value = "hhh";//页眉内容
            //创建页眉关系(headern.xml)
            //XWPFRelation Hrelation = XWPFRelation.HEADER;
           // XWPFHeader m_h = (XWPFHeader)m_Docx.CreateRelationship(Hrelation, XWPFFactory.GetInstance(), m_Docx.HeaderList.Count + 1);
            //设置页眉
            //m_h.SetHeaderFooter(m_Hdr);
            //m_HdrFtr = m_SectPr.AddNewHeaderReference();
            //m_HdrFtr.type = ST_HdrFtr.@default;
            //m_HdrFtr.id = m_h.GetPackageRelationship().Id;




            //插入柱状图图表
            //插入xlsx
            //创建xlsx
            XSSFWorkbook workbook = new XSSFWorkbook();


            //创建表单1(柱状图)
            ISheet sheet = workbook.CreateSheet("Sheet1");
            //5、表单1柱状图数据
            //     系列1	系列2 系列3
            //类别1 4.3  2.4   2
            //类别2 2.5  4.4   2
            //类别3 3.5  1.8   3
            //类别4 4.5  2.8   5




         


            IRow row = sheet.CreateRow(0);
            ICell cell = row.CreateCell(0);


          
            for (int i = 0; i < legend.Count; i++)
            {
                cell = row.CreateCell(1+i);
                cell.SetCellValue(legend[i]);




            }




            for (int i = 0; i < datas.Count; i++)
            {


                row = sheet.CreateRow(1+i);
                cell = row.CreateCell(0);
                cell.SetCellValue(datas.ElementAt(i).Key);




                for (int j = 0; j < datas.ElementAt(i).Value.Count; j++)
                {
                    cell = row.CreateCell(1+j);


                    cell.SetCellValue(datas.ElementAt(i).Value[j]);


                }




            }


            //将xlsx数据转为btye,因为在插入第一张图表后workbook流会关闭
            MemoryStream msxlsxData = new MemoryStream();
            workbook.Write(msxlsxData);
            msxlsxData.Flush();
            byte[] bxlsxData = msxlsxData.ToArray();


            //创建\word\charts\chartn.xml内容(格式柱状图)
       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值