如题,我想把 excel 第一行 前八列合并, 前四列合成一列后四列 合成一列,并写入数据
如图
如图
解决方案 »
- 用WebBrowser 百度自动登录,密码不能赋值,求助
- C# WinFrom Random类产生随机数的问题
- 一个关于VS2008的小问题,新手,什么都不会.
- 请大家帮个忙,十万火急的问题,我现在通过程序要往巳经定制好的票据上打印内容,如何实现呢?
- 高分求救!一个存储过程的问题!高手进
- 从sql库里读取二进制图片的问题,急!!
- 超难问题: C# 自定义控件 数据绑定不触发 Binding.Format 事件 不够另开帖给分
- 怎么使通过进程打开的win32程序窗口始终置顶?
- 求winform下dataGridView点某行的第一列,列排序
- 请问C#中有没有类似coolbar的东西,或能将combobox作为一个botton放在工具条上的方法
- WPF,这个功能是怎么实现的?
- 怎么样把Xml转化为json
合并某行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);
}
}
{
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;
}