fpSpread1 简单用法

本文介绍如何利用fpSpread1处理数据并将其导入到Excel模板中,生成包含原物料检验报告的各项关键信息,包括产品名称、入库代码、数量等,并实现数据汇总与工段小计的自动计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//如果汇总的话直接可在模板里面填写公式,不过要有三行空行才行 比如SUM(A1,A2,A3)

fpSpread1.Sheets[0].RowCount = 30;
fpSpread1.Sheets[0].ColumnCount = 15;

        yclCheckManager cm = new yclCheckManager();
        DataSet ds= cm.getMaterialCheckProject(deliverNum);
        string pro_code = "";
        Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook();
        workbook.Open(Application.StartupPath + @"\Templates\原物料检验报告.xlt");
        sheet = workbook.Worksheets[0];


        if (ds.Tables[0].Rows.Count>0)
        {
            sheet.Cells["C5"].PutValue(ds.Tables[0].Rows[0]["p_name"].ToString());//赋值
            sheet.Cells["C6"].PutValue(ds.Tables[0].Rows[0]["shouHuoCode"].ToString());
            pro_code = ds.Tables[0].Rows[0]["pro_code2"].ToString();
            sheet.Cells["C4"].PutValue(ds.Tables[0].Rows[0]["pro_code"].ToString());
            sheet.Cells["O4"].PutValue(ds.Tables[0].Rows[0]["shouNum"].ToString());
            sheet.Cells["O5"].PutValue(ds.Tables[0].Rows[0]["goodNum"].ToString());
            sheet.Cells["O6"].PutValue(ds.Tables[0].Rows[0]["inDate"].ToString());
        }
        DataTable dt2=cm.get_Material(pro_code);
        if (dt2.Rows.Count>0)
        {
            sheet.Cells["H4"].PutValue(dt2.Rows[0]["material"].ToString());
        }
        if (ds.Tables[1].Rows.Count>0)
        {
            sheet.Cells["H5"].PutValue(ds.Tables[1].Rows[0]["product"].ToString());
        }
         sheet.Cells["L13"].PutValue(DateBasicInfo.userMessage.userName + " / " + DateTime.Now);
         sheet.Cells.ImportDataTable(ds.Tables[2], false, "A10");
           for (int i = 0; i < ds.Tables[2].Rows.Count; i++)
           {
               sheet.Cells.Merge(9 + i,1,1,2);//合并单元格
               sheet.Cells.Merge(9 + i, 4,1,4);
               sheet.Cells.Merge(9 + i, 8,1, 4);
           }

        MemoryStream ms = workbook.SaveToStream();
        ms.Seek(0, SeekOrigin.Begin);
        fpSpread1.OpenExcel(ms);

        ms.Close();

fpSpread1.Sheets[0].RowCount = lastindex;
fpSpread1.Sheets[0].ColumnCount = 14;
//工段小计列合并
int sameNum = 0;
int gongduanNum = 0;
float sumnum7 = 0;
float sumnum8 = 0;
float sumnum9 = 0;
float sumnum10 = 0;
try
{
for (int i = 0; i < lastindex; i++)
{
if (fpSpread1.ActiveSheet.Cells[i, 0].Text.Contains("小计"))
fpSpread1.ActiveSheet.AddSpanCell(i, 0, 1, 3);
if (i > 3)
{

                    if (fpSpread1.ActiveSheet.Cells[i - 1, 0].Text == fpSpread1.ActiveSheet.Cells[i, 0].Text)
                    {
                        gongduanNum++;

                    }
                    else
                    {
                        if (gongduanNum > 0)
                        {
                            fpSpread1.ActiveSheet.AddSpanCell(i - gongduanNum - 1, 0, gongduanNum + 1, 1);
                            gongduanNum = 0;
                        }
                    }

                    if (fpSpread1.ActiveSheet.Cells[i - 1, 1].Text == fpSpread1.ActiveSheet.Cells[i, 1].Text)
                    {
                        sameNum++;
                        sumnum7 += float.Parse(fpSpread1.ActiveSheet.Cells[i - 1, 7].Text == "" ? "0" : fpSpread1.ActiveSheet.Cells[i - 1, 7].Text);//数据汇总
                        sumnum8 += float.Parse(fpSpread1.ActiveSheet.Cells[i - 1, 8].Text == "" ? "0" : fpSpread1.ActiveSheet.Cells[i - 1, 8].Text);
                        sumnum9 += float.Parse(fpSpread1.ActiveSheet.Cells[i - 1, 9].Text == "" ? "0" : fpSpread1.ActiveSheet.Cells[i - 1, 9].Text);
                        sumnum10 += float.Parse(fpSpread1.ActiveSheet.Cells[i - 1, 10].Text == "" ? "0" : fpSpread1.ActiveSheet.Cells[i - 1, 10].Text);
                    }
                    else
                    {
                        if (sameNum > 0)
                        {
                            sumnum7 += float.Parse(fpSpread1.ActiveSheet.Cells[i - 1, 7].Text == "" ? "0" : fpSpread1.ActiveSheet.Cells[i - 1, 7].Text);
                            fpSpread1.ActiveSheet.Cells[i - sameNum - 1, 7].Value = sumnum7;
                            fpSpread1.ActiveSheet.AddSpanCell(i - sameNum - 1, 7, sameNum + 1, 1);

                            sumnum8 += float.Parse(fpSpread1.ActiveSheet.Cells[i - 1, 8].Text == "" ? "0" : fpSpread1.ActiveSheet.Cells[i - 1, 8].Text);
                            fpSpread1.ActiveSheet.Cells[i - sameNum - 1, 8].Value = sumnum8;
                            fpSpread1.ActiveSheet.AddSpanCell(i - sameNum - 1, 8, sameNum + 1, 1);

                            sumnum9 += float.Parse(fpSpread1.ActiveSheet.Cells[i - 1, 9].Text == "" ? "0" : fpSpread1.ActiveSheet.Cells[i - 1, 9].Text);
                            fpSpread1.ActiveSheet.Cells[i - sameNum - 1, 9].Value = sumnum9;
                            fpSpread1.ActiveSheet.AddSpanCell(i - sameNum - 1, 9, sameNum + 1, 1);


                            sumnum10 += float.Parse(fpSpread1.ActiveSheet.Cells[i - 1, 10].Text == "" ? "0" : fpSpread1.ActiveSheet.Cells[i - 1, 10].Text);
                            fpSpread1.ActiveSheet.Cells[i - sameNum - 1, 10].Value = sumnum10;
                            fpSpread1.ActiveSheet.AddSpanCell(i - sameNum - 1, 10, sameNum + 1, 1);

                            fpSpread1.ActiveSheet.AddSpanCell(i - sameNum - 1, 1, sameNum + 1, 1);


                            sameNum = 0;
                            sumnum7 = 0;
                            sumnum8 = 0;
                            sumnum9 = 0;
                            sumnum10 = 0;
                        }
                    }
                }


            }
        }
        catch (Exception ex)
        {
           
        }
posted on 2016-05-10 15:41 影子博客 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/VictorBlog/p/5478070.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值