我正在做excel插件项目。
我正在从数据库表中动态生成excel工作表。
现在,我想将特定的excel工作表移动到位置1和2。
我尝试了下面的方法,它在Office版本2010上工作正常
但不适用于Office 2013版
office 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]);
如何将板材移动到第一个位置?
发布于 2017-02-16 06:15:21
假设工作表已经在excel工作簿中。
将该工作表命名为MyFirstSheet
将Excel工作簿命名为book
要将工作表MyFirstSheet移动到excel工作簿中的第一个位置:
private static void moveSheetToFirstPosition(Excel.Workbook book){
book.Sheets["MyFirstSheet"].Move(book.Sheets[1]);
}
这将把它放在第一位。
如果您有两个工作表要移动,FirstSheet,SecondSheet,只需将SecondSheet移动到Sheet1,然后移动FirstSheet Sheets1。从而使第二张纸处于位置2。
希望这能有所帮助。
https://stackoverflow.com/questions/26137210
复制相似问题