Копирование и перемещение рабочих листов
Иногда вам действительно нужно несколько рабочих листов с общим форматированием и данными. Например, если вы работаете с квартальными бюджетами, вам может потребоваться создать книгу с листами, содержащими одинаковые заголовки столбцов, заголовки строк и формулы. Есть способ сделать это: создав один лист, а затем скопировав его.
Aspose.Cells поддерживает копирование и перемещение рабочих листов внутри или между книгами Excel. Лист с данными, форматированием, таблицами, матрицами, диаграммами, изображениями и другими объектами копируется с высочайшей точностью.
Перемещение или копирование листов с использованием Microsoft Excel
Ниже приведены шаги для копирования и перемещения листов внутри или между книгами в Microsoft Excel.
- Чтобы переместить или скопировать листы в другую рабочую книгу, откройте рабочую книгу, которая будет получать листы.
- Переключитесь на рабочую книгу, которая содержит листы, которые вы хотите переместить или скопировать, а затем выберите листы.
- На меню Правка щелкните Переместить или скопировать лист.
- В диалоговом окне В книгу щелкните книгу, которая получит листы.
- Чтобы переместить или скопировать выбранные листы в новую книгу, щелкните Новая книга.
- В поле Перед листом щелкните лист, перед которым вы хотите вставить перемещенные или скопированные листы.
- Чтобы скопировать листы вместо их перемещения, выберите флажок Создать копию.
Копирование листов внутри книги с помощью Aspose.Cells
Aspose.Cells предоставляет перегруженный метод Aspose.Cells.WorksheetCollection.AddCopy(), который используется для добавления листа в коллекцию и копирования данных с существующего листа. Одна версия метода принимает индекс исходного листа в качестве параметра. Другая версия принимает имя исходного листа.
В следующем примере показано, как скопировать существующий лист в рамках рабочей книги.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
string InputPath = dataDir + "book1.xls"; | |
// Open an existing Excel file. | |
Workbook wb = new Workbook(InputPath); | |
// Create a Worksheets object with reference to | |
// the sheets of the Workbook. | |
WorksheetCollection sheets = wb.Worksheets; | |
// Copy data to a new sheet from an existing | |
// sheet within the Workbook. | |
sheets.AddCopy("Sheet1"); | |
// Save the Excel file. | |
wb.Save(dataDir + "CopyWithinWorkbook_out.xls"); |
Копировать листы между рабочими книгами
Aspose.Cells предоставляет метод Aspose.Cells.Worksheet.Copy(), используемый для копирования данных и форматирования с исходного листа на другой лист внутри или между книгами. Метод принимает объект исходного листа в качестве параметра.
В следующем примере показано, как скопировать лист из одной рабочей книги в другую рабочую книгу.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
string InputPath = dataDir + "book1.xls"; | |
// Create a Workbook. | |
// Open a file into the first book. | |
Workbook excelWorkbook0 = new Workbook(InputPath); | |
// Create another Workbook. | |
Workbook excelWorkbook1 = new Workbook(); | |
// Copy the first sheet of the first book into second book. | |
excelWorkbook1.Worksheets[0].Copy(excelWorkbook0.Worksheets[0]); | |
// Save the file. | |
excelWorkbook1.Save(dataDir + "CopyWorksheetsBetweenWorkbooks_out.xls"); |
В следующем примере показано, как скопировать лист из одной рабочей книги в другую рабочую книгу.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create a new Workbook. | |
Workbook excelWorkbook0 = new Workbook(); | |
// Get the first worksheet in the book. | |
Worksheet ws0 = excelWorkbook0.Worksheets[0]; | |
// Put some data into header rows (A1:A4) | |
for (int i = 0; i < 5; i++) | |
{ | |
ws0.Cells[i, 0].PutValue(string.Format("Header Row {0}", i)); | |
} | |
// Put some detail data (A5:A999) | |
for (int i = 5; i < 1000; i++) | |
{ | |
ws0.Cells[i, 0].PutValue(string.Format("Detail Row {0}", i)); | |
} | |
// Define a pagesetup object based on the first worksheet. | |
PageSetup pagesetup = ws0.PageSetup; | |
// The first five rows are repeated in each page... | |
// It can be seen in print preview. | |
pagesetup.PrintTitleRows = "$1:$5"; | |
// Create another Workbook. | |
Workbook excelWorkbook1 = new Workbook(); | |
// Get the first worksheet in the book. | |
Worksheet ws1 = excelWorkbook1.Worksheets[0]; | |
// Name the worksheet. | |
ws1.Name = "MySheet"; | |
// Copy data from the first worksheet of the first workbook into the | |
// first worksheet of the second workbook. | |
ws1.Copy(ws0); | |
// Save the excel file. | |
excelWorkbook1.Save(dataDir + "CopyWorksheetFromWorkbookToOther_out.xls"); |
Перемещение листов в рамках рабочей книги
Aspose.Cells предоставляет метод Aspose.Cells.Worksheet.MoveTo(), который используется для перемещения листа в другое место в той же книге. Метод принимает индекс целевого листа в качестве параметра.
В следующем примере показано, как переместить лист в другое место внутри рабочей книги.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
string InputPath = dataDir + "book1.xls"; | |
// Open an existing excel file. | |
Workbook wb = new Workbook(InputPath); | |
// Create a Worksheets object with reference to | |
// the sheets of the Workbook. | |
WorksheetCollection sheets = wb.Worksheets; | |
// Get the first worksheet. | |
Worksheet worksheet = sheets[0]; | |
// Move the first sheet to the third position in the workbook. | |
worksheet.MoveTo(2); | |
// Save the excel file. | |
wb.Save(dataDir + "MoveWorksheet_out.xls"); |