现在需要用C#往一个Excel模板中插入若干行,在插入点7行下面有几幅图片如果直接在Excle模板中插入的话,图片会自动下移,
excle的宏内容为:
Sub Macro1()
'
' Macro1 Macro
''
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
但是在C#中用如下代码进行插入的话
/// <summary>
/// 在excel指定行上面插入新行
/// </summary>
/// <param name="rowIndex">指定行</param>
/// <param name="count">插入的行数</param>
public void InsertRows(int rowIndex, int count)
{
myRange = (Excel.Range)myWSheet.Rows[rowIndex, Type.Missing];
for (int i = 0; i < count; i++)
{
//myRange.Insert(Excel.XlDirection.xlDown, Excel.XlInsertFormatOrigin.xlFormatFromLeftOrAbove);
myRange.Rows.Insert(Excel.XlDirection.xlDown, Excel.XlInsertFormatOrigin.xlFormatFromLeftOrAbove);
}
}
图片就不会自动下移,和数据行重叠在一起。通过C#,怎么才能在插入行的时候让图片自动下移?
excle的宏内容为:
Sub Macro1()
'
' Macro1 Macro
''
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
但是在C#中用如下代码进行插入的话
/// <summary>
/// 在excel指定行上面插入新行
/// </summary>
/// <param name="rowIndex">指定行</param>
/// <param name="count">插入的行数</param>
public void InsertRows(int rowIndex, int count)
{
myRange = (Excel.Range)myWSheet.Rows[rowIndex, Type.Missing];
for (int i = 0; i < count; i++)
{
//myRange.Insert(Excel.XlDirection.xlDown, Excel.XlInsertFormatOrigin.xlFormatFromLeftOrAbove);
myRange.Rows.Insert(Excel.XlDirection.xlDown, Excel.XlInsertFormatOrigin.xlFormatFromLeftOrAbove);
}
}
图片就不会自动下移,和数据行重叠在一起。通过C#,怎么才能在插入行的时候让图片自动下移?
Range allDataWithTitleRange = xSt.get_Range(excel.Cells[1, 1], excel.Cells[rowIndex, colIndex - 1]);
allDataWithTitleRange.Select();
allDataWithTitleRange.Columns.AutoFit();
int row = rg.Row; Excel.Worksheet ws = (Excel.Worksheet)this.Worksheets.get_Item(1);
object value = ws.get_Range("A" + row.ToString(), missing).Value2;
rg.EntireRow.Insert(Missing.Value, Missing.Value);
rg = ws.get_Range("A" + row.ToString(), missing);
rg.Value2 = value;这个是我自己做的插入行的一个代码,也许对你有帮助
参考文章:
http://www.cnblogs.com/heekui/archive/2008/03/30/1129355.html
http://msdn.microsoft.com/zh-cn/library/bb608613.aspx谢谢大家的热心,散分