110,561
社区成员
发帖
与我相关
我的任务
分享
Excel.Range r;
r=ws.get_Range(ws.Cells[1,1],ws.Cells[1,6]); //取得合并的区域
r.MergeCells=true;
/// <summary>
/// 将指定索引列的数据相同的行合并,对指定WorkSheet操作
/// </summary>
/// <param name="intColumnIndex">要合并的列索引</param>
/// <param name="intBeginRowIndex">合并开始行索引</param>
/// <param name="intRowsCount">要合并的行数</param>
public void MergeRowsForSelectedColumn(int intColumnIndex, int intBeginRowIndex, int intRowsCount)
{
Range objFirstRange = null;
Range objMergeRange = null;
string strMeargeText = "";
try
{
if (exlWorksheet == null || intColumnIndex <= 0 || intBeginRowIndex <= 0 || intRowsCount <= 0)
return;
objFirstRange = (Range)exlWorksheet.Cells[intBeginRowIndex, intColumnIndex];
if (objFirstRange == null)
return;
if (objFirstRange.Value2 != null)
strMeargeText = objFirstRange.Value2.ToString().Trim();
objMergeRange = (Range)exlWorksheet.get_Range(exlWorksheet.Cells[intBeginRowIndex, intColumnIndex],
exlWorksheet.Cells[intBeginRowIndex + intRowsCount, intColumnIndex]);
if (objMergeRange == null)
return;
//先把Range内容清除,合并才不会出错
exlWorksheet.Activate();
objMergeRange.ClearContents();
objMergeRange.MergeCells = true;
objMergeRange.Value2 = strMeargeText;
objMergeRange.HorizontalAlignment = XlHAlign.xlHAlignCenter;
objMergeRange.VerticalAlignment = XlVAlign.xlVAlignCenter;
}
catch (Exception ex)
{
string strErrTip = "合并单元格发生错误,错误信息为:->\r\n" + ex.Message;
}
}
/// <summary>
/// 将指定索引列的数据相同的行合并,对指定WorkSheet操作
/// </summary>
/// <param name="intColumnIndex">要合并的列索引</param>
/// <param name="intBeginRowIndex">合并开始行索引</param>
/// <param name="intRowsCount">要合并的行数</param>
///
public void MergeRowsForSelectedColumn(int intColumnIndex, int intBeginRowIndex, int intEndRowIndex, string strMeargeText)
{
Range objMergeRange = null;
try
{
if (exlWorksheet == null || intColumnIndex <= 0 || intBeginRowIndex <= 0 || intEndRowIndex <= 0)
return;
objMergeRange = (Range)exlWorksheet.get_Range(exlWorksheet.Cells[intBeginRowIndex, intColumnIndex],
exlWorksheet.Cells[intEndRowIndex, intColumnIndex]);
if (objMergeRange == null)
return;
//先把Range内容清除,合并才不会出错
exlWorksheet.Activate();
objMergeRange.ClearContents();
objMergeRange.MergeCells = true;
objMergeRange.Value2 = strMeargeText;
objMergeRange.HorizontalAlignment = XlHAlign.xlHAlignCenter;
objMergeRange.VerticalAlignment = XlVAlign.xlVAlignCenter;
objMergeRange.ShrinkToFit = false;
objMergeRange.WrapText = true;
}
catch (Exception ex)
{
string strErrTip = "合并单元格发生错误,错误信息为:->\r\n" + ex.Message;
}
}
/// <summary>
/// 将指定索引行的数据相同的列合并,对指定WorkSheet操作
/// </summary>
/// <param name="intRowIndex">要合并的行索引</param>
/// <param name="intBeginColIndex">合并开始列索引</param>
/// <param name="intColsCount">要合并的列数</param>
public void MergeRowsForSelectedRow(int intRowIndex, int intBeginColIndex, int intColsCount)
{
Range objFirstRange = null;
Range objMergeRange = null;
string strMeargeText = "";
try
{
if (exlWorksheet == null || intRowIndex <= 0 || intBeginColIndex <= 0 || intColsCount <= 0)
return;
objFirstRange = (Range)exlWorksheet.Cells[intRowIndex, intBeginColIndex];
if (objFirstRange == null)
return;
if (objFirstRange.Value2 != null)
strMeargeText = objFirstRange.Value2.ToString().Trim();
objMergeRange = (Range)exlWorksheet.get_Range(exlWorksheet.Cells[intRowIndex, intBeginColIndex],
exlWorksheet.Cells[intRowIndex, intBeginColIndex + intColsCount]);
if (objMergeRange == null)
return;
//先把Range内容清除,合并才不会出错
exlWorksheet.Activate();
objMergeRange.ClearContents();
objMergeRange.MergeCells = true;
objMergeRange.Value2 = strMeargeText;
objMergeRange.HorizontalAlignment = XlHAlign.xlHAlignCenter;
objMergeRange.VerticalAlignment = XlVAlign.xlVAlignCenter;
}
catch (Exception ex)
{
string strErrTip = "合并单元格发生错误,错误信息为:->\r\n" + ex.Message;
}
}
//这样?
Microsoft.Office.Interop.Excel.Range r1;
Microsoft.Office.Interop.Excel.Range r2;
r1.Text += r2.Text;