电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

BOS运行时 - 引出 - Excel合并单元格

来源:金蝶云社区作者:金蝶2024-09-237

BOS运行时 - 引出 - Excel合并单元格

excel支持合并单元格效果,比如存在2个列头,可以合并列或者合并行,如果引出excel想要实现类似效果,可以使用第三方NPOI引出,实现效果如下:

image.webp


设置参考代码:

 //设置合并行列
 CellRangeAddress region1 = new CellRangeAddress(0, 1,0, 0);
 sheet.AddMergedRegion(region1);


完整示例代码如下:

using Kingdee.BOS;

using Kingdee.BOS.App.Data;

using Kingdee.BOS.Core;

using Kingdee.BOS.Core.Bill;

using Kingdee.BOS.Core.Bill.PlugIn;

using Kingdee.BOS.Core.DynamicForm;

using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;

using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;

using Kingdee.BOS.Core.Metadata;

using Kingdee.BOS.Core.Metadata.ControlElement;

using Kingdee.BOS.Core.Metadata.FieldElement;

using Kingdee.BOS.Core.Metadata.FormElement;

using Kingdee.BOS.Excel;

using Kingdee.BOS.Log;

using Kingdee.BOS.Orm.DataEntity;

using Kingdee.BOS.Resource;

using Kingdee.BOS.ServiceHelper;

using Kingdee.BOS.ServiceHelper.Excel;

using Kingdee.BOS.ServiceHelper.FileServer;

using Kingdee.BOS.Util;

using Kingdee.BOS.Web;

using Kingdee.BOS.WebApi.Client;

using Kingdee.BOS.WebApi.FormService;

using NPOI.HSSF.Util;

using NPOI.OpenXmlFormats.Spreadsheet;

using NPOI.SS.Formula.Functions;

using NPOI.SS.UserModel;

using NPOI.SS.Util;

using NPOI.XSSF.Streaming;

using NPOI.XSSF.UserModel;

using System;

using System.Collections.Generic;

using System.Data;

using System.IO;

using System.Linq;

using System.Net.Http;

using System.Text;

using System.Threading.Tasks;


namespace Cloud.BOS.Support.Bill

{

    [HotUpdate]

    public class NpoiExportPlugin : AbstractBillPlugIn

    {

        public override void BarItemClick(BarItemClickEventArgs e)

        {

            if (e.BarItemKey.EqualsIgnoreCase("tbExportByNpoiMerge"))

            {

                ExportMerge();

            }

        }


        private void ExportMerge()

        {

            var tb = BuildMergeData();


            var showParameter = new DynamicFormShowParameter();

            showParameter.FormId = "BOS_FileDownLoad";

            showParameter.OpenStyle.ShowType = ShowType.Modal;

            showParameter.CustomParams.Add("url", NPOIMerge(tb));

            this.View.ShowForm(showParameter);

        }


        private string NPOIMerge(DataTable tb)

        {

            var wb = new SXSSFWorkbook();

            SXSSFSheet sheet = (SXSSFSheet)wb.CreateSheet("demo");

            var tempXmlFile = sheet._writer.TemporaryFilePath();


            string fileName = string.Format("NPOI-demo-{0}.xlsx", DateTime.Now.ToString("yyyyMMddhhmmss"));

            var filePath = PathUtils.GetPhysicalPath(KeyConst.TEMPFILEPATH, fileName);

            var fileUrl = PathUtils.GetServerPath(KeyConst.TEMPFILEPATH, PathUtils.UrlEncode(fileName));


            try

            {

                for (int i = 0; i < tb.Rows.Count; i++)

                {


                    var dataIndex = i;

                    IRow row = sheet.CreateRow(dataIndex);


                    for (int colIndex = 0; colIndex < tb.Columns.Count; colIndex++)

                    {

                        ICell cell = row.CreateCell(colIndex);

                        ICellStyle textCellStyle = wb.CreateCellStyle();                      


                        textCellStyle.DataFormat = wb.CreateDataFormat().GetFormat("@");

                        cell.SetCellValue(tb.Rows[dataIndex][colIndex].ToString());

                        cell.CellStyle = textCellStyle;                        

                    }

                }

                var cell1 = sheet.GetRow(0).GetCell(0);

                //设置合并行列

                CellRangeAddress region1 = new CellRangeAddress(0, 1,0, 0);

                sheet.AddMergedRegion(region1);

                SetCenter(wb, cell1);


                CellRangeAddress region2 = new CellRangeAddress(0, 1, 1, 1);

                sheet.AddMergedRegion(region2);

                SetCenter(wb, cell1);


                CellRangeAddress region3 = new CellRangeAddress(0, 1, 2, 2);

                sheet.AddM

BOS运行时 - 引出 - Excel合并单元格

excel支持合并单元格效果,比如存在2个列头,可以合并列或者合并行,如果引出excel想要实现类似效果,可以使用第三方NPOI引出,实现效果如...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信