[]
        
(Showing Draft Content)

剪切或复制单元格区域

GcExcel Java允许用户从特定区域剪切或复制一个单元格或一系列单元格,并将其粘贴到同一工作表中的另一个区域。您还可以选择是否将数据复制并粘贴到工作表中的隐藏区域。想要了解更多,可以参考 粘贴或在隐藏区域忽略数据

要跨多表单剪切或复制数据,参考跨工作表剪切或复制

要从单元格区域剪切或复制数据,可以参考以下章节。

复制单元格区域

可以通过调用 IRange 接口的 copy 方法复制一个单元格或者是一片区域。 要复制单个单元格或单元格区域,请指定要复制的单元格区域,例如 B3:D12

GcExcel Java提供了以下不同的方法来使用copy方法。

示例

描述

copy(sheet.getRange["E5"])

此方法从单元格区域 B3:D12 复制数据并将数据粘贴到E5

copy(sheet.getRange["E5:G14"])

此方法从单元格区域 B3:D12 复制数据并将数据粘贴到区域E5:G14。 如果复制的单元格区域不符合目标单元格区域,则数据将丢失。

要复制工作簿中的单元格区域,请参考以下示例代码:

// Initialize workbook
Workbook workbook = new Workbook();
        
// Fetch default worksheet
IWorksheet worksheet = workbook.getWorksheets().get(0);

// Set data of PC
worksheet.getRange("A2").setValue("PC");

Object data = new Object[] { "Device", "Quantity", "Unit Price" };
worksheet.getRange("A4:C4").setValue(data);

Object otherData = new Object[][] { 
{ "T540p", 12, 9850 }, { "T570", 5, 7460 }, { "Y460", 6, 5400 },
{ "Y460F", 8, 6240 }, };
worksheet.getRange("A5:C10").setValue(otherData);

// Set style
worksheet.getRange("A2").setRowHeight(30);
worksheet.getRange("A2").getFont().setSize(20);
worksheet.getRange("A2").getFont().setBold(true);
worksheet.getRange("A4:C4").getFont().setBold(true);
worksheet.getRange("A4:C4").getFont().setColor(Color.GetWhite());
worksheet.getRange("A4:C4").getInterior().setColor(Color.GetLightBlue());
worksheet.getRange("A5:C10").getBorders()
.get(BordersIndex.InsideHorizontal).setColor(Color.GetOrange());
worksheet.getRange("A5:C10").getBorders()
.get(BordersIndex.InsideHorizontal)
.setLineStyle(BorderLineStyle.DashDot);

// Copy only style and row height from cells A2:C10
worksheet.getRange("H1").setValue("Copy style and row height from previous cells.");
worksheet.getRange("H1").getFont().setColor(Color.GetRed());
worksheet.getRange("H1").getFont().setBold(true);
worksheet.getRange("A2:C10").copy(worksheet.getRange("H2"), EnumSet.of(PasteType.Formats));

// Set data of mobile devices
worksheet.getRange("H2").setValue("Mobile");
        
// Object data = new Object[] {"Device", "Quantity", "Unit Price" };
worksheet.getRange("H4:J4").setValue(data);

Object otherDataRange = new Object[][] { 
{ "T540p", 12, 9850 }, { "T570", 5, 7460 }, { "Y460", 6, 5400 },
{ "Y460F", 8, 6240 }, };
worksheet.getRange("H5:J10").setValue(otherDataRange);
        
// Add new sheet
IWorksheet worksheet2 = workbook.getWorksheets().add();

// Copy only style of Cell A2:C10 to new sheet
worksheet.getRange("A2:C10")
.copy(worksheet2.getRange("A2"), EnumSet.of(PasteType.Formats));
worksheet2.getRange("A3").setValue("Copy style from sheet1.");
worksheet2.getRange("A3").getFont().setColor(Color.GetRed());
worksheet2.getRange("A3").getFont().setBold(true);

// Saving workbook to xlsx
workbook.save("PasteOptionsEnhancements.xlsx", SaveFileFormat.Xlsx);

剪切单元格区域

可以调用IRange 接口的 cut 方法剪切一个单元格或者是单元格区域。 要剪切单元格或单元格区域,请指定要移动的单元格区域,例如 B3:D12

GCExcelJava提供了以下不同的方法来使用cut方法。

示例

描述

cut(sheet.getRange["E5"])

此方法从单元格区域B3:D12中剪切数据并粘贴到单元格 E5

cut(sheet.getRange["E5:G14"])

此方法从单元格区域B3:D12中剪切数据并粘贴到单元格区域 E5:G14。 如果剪切的单元格区域不适合目标单元格区域,则数据将丢失。

请参考以下示例代码以剪切工作簿中的单元格区域。

IRange range1 = worksheet2.getRange("E5");
        
// Cut the data of the range of cell
worksheet.getRange("B3:D12").cut(range1);
        
// OR
IRange range1 = worksheet2.getRange("E5;G14");
worksheet.getRange("B3:D12").cut(range1);