Aggiunta di nuovi fogli di lavoro e attivazione di un foglio
Quando si lavora con un file di modello, a volte c’è la necessità di aggiungere fogli di lavoro aggiuntivi nel workbook per raccogliere dati. I nuovi celle verranno riempite con dati in posizioni e localizzazioni specifiche in ogni foglio di lavoro.
Allo stesso modo, potresti avere bisogno di un determinato foglio di lavoro attivo e visualizzato per primo quando il file viene aperto in Microsoft Excel. Un “foglio attivo” è il foglio su cui stai lavorando in un workbook. Il nome sulla scheda del foglio attivo è in grassetto per impostazione predefinita.
Aggiungere fogli di lavoro e impostare quale foglio è attivo sono compiti comuni e semplici che i developer devono sapere come eseguire. In questo articolo, eseguiamo questi compiti utilizzando VSTO e Aspose.Cells for .NET.
Aggiungere fogli e attivare un foglio
Per i fini di questo suggerimento sulla migrazione:
- Aggiungi nuovi fogli di lavoro a un file esistente di Microsoft Excel.
- Riempire i dati nelle celle di ogni nuovo foglio di lavoro.
- Attiva un foglio di lavoro nel workbook.
- Salvare come file di Microsoft Excel.
Di seguito sono riportati frammenti di codice paralleli per VSTO (C#, VB) e Aspose.Cells for .NET (C#, VB) che mostrano come eseguire queste attività.
VSTO
C#
.......
using Microsoft.VisualStudio.Tools.Applications.Runtime;
using Excel = Microsoft.Office.Interop.Excel;
using Office = Microsoft.Office.Core;
using System.Reflection;
.......
//Instantiate the Application object.
Excel.Application excelApp = new Excel.ApplicationClass();
//Specify the template excel file path.
string myPath = @"d:\test\My_Book1.xls";
//Open the excel file.
excelApp.Workbooks.Open(myPath, Missing.Value, Missing.Value,
Missing.Value, Missing.Value,
Missing.Value, Missing.Value,
Missing.Value, Missing.Value,
Missing.Value, Missing.Value,
Missing.Value, Missing.Value,
Missing.Value, Missing.Value);
//Declare a Worksheet object.
Excel.Worksheet newWorksheet;
//Add 5 new worksheets to the workbook and fill some data
//into the cells.
for (int i = 1; i < 6; i++)
{
//Add a worksheet to the workbook.
newWorksheet = Excel.Worksheet)excelApp.Worksheets.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value);
//Name the sheet.
newWorksheet.Name ="New_Sheet" + i.ToString();
//Get the Cells collection.
Excel.Range cells = newWorksheet.Cells;
//Input a string value to a cell of the sheet.
cells.set_Item(i, i,"New_Sheet" + i.ToString());
}
//Activate the first worksheet by default.
((Excel.Worksheet)excelApp.ActiveWorkbook.Sheets[1]).Activate();
//Save As the excel file.
excelApp.ActiveWorkbook.SaveCopyAs(@"d:\test\out_My_Book1.xls");
//Quit the Application.
excelApp.Quit();
VB
.......
Imports Microsoft.VisualStudio.Tools.Applications.Runtime
Imports Excel = Microsoft.Office.Interop.Excel
Imports Office = Microsoft.Office.Core
Imports System.Reflection
.......
'Instantiate the Application object.
Dim excelApp As Excel.Application = New Excel.ApplicationClass()
'Specify the template excel file path.
Dim myPath As String = "d:\test\My_Book1.xls"
'Open the excel file.
excelApp.Workbooks.Open(myPath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value)
'Declare a Worksheet object.
Dim newWorksheet As Excel.Worksheet
'Add 5 new worksheets to the workbook and fill some data
'into the cells.
Dim i As Integer
For i = 1 To 5 Step 1
'Add a worksheet to the workbook.
newWorksheet = CType(excelApp.Worksheets.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value), Excel.Worksheet)
'Name the sheet.
newWorksheet.Name ="New_Sheet" & i.ToString()
'Get the Cells collection.
Dim cells As Excel.Range = newWorksheet.Cells
'Input a string value to a cell of the sheet.
cells.Item(i, i) = "New_Sheet" & i.ToString()
Next
'Activate the first worksheet by default.
CType(excelApp.ActiveWorkbook.Sheets(1), Excel.Worksheet).Activate()
'Save As the excel file.
excelApp.ActiveWorkbook.SaveCopyAs("d:\test\out_My_Book1.xls")
'Quit the Application.
excelApp.Quit()
Aspose.Cells for .NET
C#
.......
using Aspose.Cells;
.......
//Instantiate an instance of license and set the license file
//through its path
Aspose.Cells.License license = new Aspose.Cells.License();
license.SetLicense("Aspose.Cells.lic");
//Specify the template excel file path.
string myPath =@"d:\test\My_Book1.xls";
//Instantiate a new Workbook.
//Open the excel file.
Workbook workbook = new Workbook(myPath);
//Declare a Worksheet object.
Worksheet newWorksheet;
//Add 5 new worksheets to the workbook and fill some data
//into the cells.
for (int i = 0; i < 5; i++)
{
//Add a worksheet to the workbook.
newWorksheet = workbook.Worksheets[workbook.Worksheets.Add()];
//Name the sheet.
newWorksheet.Name = "New_Sheet" + (i+1).ToString();
//Get the Cells collection.
Cells cells = newWorksheet.Cells;
//Input a string value to a cell of the sheet.
cells[i, i].PutValue("New_Sheet" + (i+1).ToString());
}
//Activate the first worksheet by default.
workbook.Worksheets.ActiveSheetIndex = 0;
//Save As the excel file.
workbook.Save(@"d:\test\out_My_Book1.xls");
VB
.......
Imports Aspose.Cells
.......
'Instantiate an instance of license and set the license file
'through its path
Dim license As Aspose.Cells.License = New Aspose.Cells.License
license.SetLicense("Aspose.Cells.lic")
'Specify the template excel file path.
Dim myPath As String ="d:\test\My_Book1.xls"
'Instantiate a new Workbook.
'Open the excel file.
Dim workbook As Workbook = New Workbook(myPath)
'Declare a Worksheet object.
Dim newWorksheet As Worksheet
'Add 5 new worksheets to the workbook and fill some data
'into the cells.
Dim i As Integer
For i = 0 To 4 Step 1
'Add a worksheet to the workbook.
newWorksheet = workbook.Worksheets(workbook.Worksheets.Add())
'Name the sheet.
newWorksheet.Name = "New_Sheet" + (i + 1).ToString()
'Get the Cells collection.
Dim cells As Cells = newWorksheet.Cells
'Input a string value to a cell of the sheet.
cells(i, i).PutValue("New_Sheet" + (i + 1).ToString())
Next
'Activate the first worksheet by default.
workbook.Worksheets.ActiveSheetIndex = 0
'Save As the excel file.
workbook.Save("c:\test\out_My_Book1.xls")