我正在使用excel add in project。
我正在动态地从数据库表生成Excel工作表。
现在我想在第1和第2位移动特定的Excel工作表。
我尝试过如下操作,正确使用Office 2010版
但不适用于Office版本2013
2013年办公室应该怎么办?
如果活动表单来了,那么MYFirst"我使用以下代码将其移至第一位置
Worksheet hiddenSheet;
hiddenSheet = (Worksheet)Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
hiddenSheet.Move(Type.Missing, Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets[Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.Count - 3]);
// int count = Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.Count; // in office version 2010 count comes 4 so (4-3=1)
如果活动表单来了,那就是MYSecond"我使用以下代码将其移至第一位置
Worksheet hiddenSheet;
hiddenSheet = (Worksheet)Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
hiddenSheet.Move(Type.Missing, Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets[Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.Count - 3]);
// int count = Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.Count; // in office version 2010 count comes 5 so (5-3=2)
我怎样才能做到这一点?或者如何找到当前安装的Office版本,以便直接执行计数差异并直接指定位置
MSDN提供此代码将工作表移动到最后位置 http://msdn.microsoft.com/en-us/library/xyhf0ksb.aspx
int totalSheets = this.Application.ActiveWorkbook.Sheets.Count;
((Excel.Worksheet)Application.ActiveSheet).Move(
this.Application.Worksheets[totalSheets]);
如何将工作表移到第一个位置?
答案 0 :(得分:0)
假设工作表已在excel工作簿中
将表格称为MyFirstSheet
将Excel工作簿称为book
将工作表MyFirstSheet移动到Excel工作簿中的第一个位置:
private static void moveSheetToFirstPosition(Excel.Workbook book){
book.Sheets["MyFirstSheet"].Move(book.Sheets[1]);
}
这将把它放在第一位。
如果你有2张要移动的页面,FirstSheet,SecondSheet,只需将SecondSheet移动到Sheet [1],然后移动FirstSheet Sheets [1]。从而使第二张纸位于第2位。
希望这有帮助。