如题,我想把 excel 第一行 前八列合并, 前四列合成一列后四列 合成一列,并写入数据
如图

解决方案 »

  1.   

    http://www.cnblogs.com/herbert/archive/2010/06/30/1768271.html
      

  2.   

    给你一个参考
    合并某行2和3列,其它的用相仿的方法做就行        /// <summary>
            /// 生成选型信息表
            /// </summary>
            /// <param name="projectId"></param>
            /// <returns></returns>
            public bool ExportSelTypeToExcel(String strOutFileName)
            {            Excel.Application app = null;
                Excel.Workbook workBook = null;
                Excel.Worksheet workSheet = null;
                try
                {
                    int row;
                    int index;                object missing = Missing.Value;
                    app = new Excel.Application();
                    if (app == null)
                    {
                        //MessageBox.Show("ERROR: EXCEL couldn't be started!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        return false;
                    }                // 打开模板文件,得到WorkBook对象 
                    workBook = app.Workbooks.Open(strAppPath + "\\template\\seltype.xls", missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);                //得到WorkSheet对象 
                    workSheet = (Excel.Worksheet)workBook.Sheets.get_Item(1);                app.Visible = true;                //项目编号填写:项目名称
                    workSheet.Cells[4, 9] = this.smProjectInfo.projectName;                //报价单号:
                    workSheet.Cells[4, 4] = this.smProjectInfo.priceOrder;                //所属区域
                    workSheet.Cells[4, 19] = this.smProjectInfo.area;                //客户名称
                    workSheet.Cells[5, 9] = this.smProjectInfo.customer;                //所属行业
                    workSheet.Cells[5, 15] = this.smProjectInfo.industry;                //联系人员
                    workSheet.Cells[5, 19] = this.smProjectInfo.contacter;                //联系方式
                    workSheet.Cells[6, 9] = this.smProjectInfo.telphone;                //业务员
                    workSheet.Cells[6, 15] = this.smProjectInfo.seller;                //日期
                    workSheet.Cells[6, 19] = this.smProjectInfo.date;                row = 8;
                    for (index = 0; index < this.outTypeList.Count; index++)
                    {
                        //插入一行:
                        InsertRow(workBook, row);
                        MerageCell(workBook, row, 2, row, 3);
                        MerageCell(workBook, row, 5, row, 6);
                        MerageCell(workBook, row, 7, row, 8);
                        MerageCell(workBook, row, 13, row, 14);
                        MerageCell(workBook, row, 17, row, 18);                    OutTypeInfo smOutTypeInfo = (OutTypeInfo)this.outTypeList[index];                    //序号
                        workSheet.Cells[row, 1] = smOutTypeInfo.serial;                    //位号填空
                        workSheet.Cells[row, 2] = smOutTypeInfo.pos;                    //编码
                        workSheet.Cells[row, 4] = smOutTypeInfo.code;                    //总型号
                        workSheet.Cells[row, 5] = smOutTypeInfo.strSumType;                    //规格描述1
                        workSheet.Cells[row, 7] = smOutTypeInfo.speciDetail1;                    //单价
                        workSheet.Cells[row, 9] = smOutTypeInfo.unitPrice;                    //数量
                        workSheet.Cells[row, 10] = smOutTypeInfo.num;                    //总价
                        workSheet.Cells[row, 11] = smOutTypeInfo.sumPrice;                    //交货周期
                        workSheet.Cells[row, 12] = smOutTypeInfo.deliveryPeriod;                    //输入信号
                        workSheet.Cells[row, 13] = smOutTypeInfo.inputSignal;                    //输出信号
                        workSheet.Cells[row, 15] = smOutTypeInfo.outSignal;                    //额定功率
                        workSheet.Cells[row, 16] = smOutTypeInfo.power;                    //额定电流
                        workSheet.Cells[row, 17] = smOutTypeInfo.eCurrent;                    //启动电流
                        workSheet.Cells[row, 19] = smOutTypeInfo.qCurrent;                    //重量
                        workSheet.Cells[row, 20] = smOutTypeInfo.weight;
                        row++;
                    }                // 输出Excel文件并退出 
                    app.DisplayAlerts = false;
                    workBook.SaveAs(strOutFileName, missing, missing, missing, missing, missing, Excel.XlSaveAsAccessMode.xlExclusive, missing, missing, missing, missing, missing);
                }
                catch (Exception er)
                {
                    throw new Exception(er.Message);
                }
    上面调用下面方法合并列
            /// <summary>
            /// 合并单元格
            /// </summary>
            /// <param name="wb">工作簿</param>
            /// <param name="r1"></param>
            /// <param name="c1"></param>
            /// <param name="r2"></param>
            /// <param name="c2"></param>
            public void MerageCell(Excel.Workbook wb, int r1, int c1, int r2, int c2)
            {
                try
                {
                    Excel.Worksheet ws = (Excel.Worksheet)wb.ActiveSheet;  //取得当前活动的Worksheet
                    Excel.Range r;
                    r = ws.get_Range(ws.Cells[r1, c1], ws.Cells[r2, c2]);     //取得合并的区域 
                    r.MergeCells = true;
                }
                catch (Exception er)
                {
                    throw new Exception(er.Message);
                }
            }
            
      

  3.   

    MergeCells(wSheet, "E", lastStart.ToString(), "E", (cellRow - 1).ToString());private void MergeCells(Worksheet wSheet, string start, string startRow, string end, string endRow)
            {
                Range range = (Range)wSheet.get_Range(start + startRow, end + endRow);
                range.NumberFormatLocal = "@";                                                              //设置单元格格式为文本
                range.Merge(0);                                                                             //单元格合并动作
                range.Font.Size = 10;
                range.Font.Bold = true;
                range.HorizontalAlignment = XlHAlign.xlHAlignLeft;
                range.VerticalAlignment = XlHAlign.xlHAlignCenter;
                //range.Cells.Interior.Color = Color.FromArgb(255, 204, 153).ToArgb();            range = null;
            }
      

  4.   

    参考: http://www.cnblogs.com/tangself/archive/2010/12/02/1894755.html