在 microsoft excel 中,复制行、列和单元格是日常数据处理中的常见操作。这些功能使用户能够快速复用数据和格式等内容,从而节省时间并减少手动输入错误的风险。在 java 中,开发者可以利用 spire.xls for java 库轻松实现 excel 行、列和单元格的复制并保留原有格式。本文将介绍如何使用 spire.xls for java 和 java 在 excel 中复制行、列和单元格数据并保留格式。
安装 spire.xls for java
首先,您需要将 spire.xls.jar 文件作为依赖项添加到您的 java 程序中。可以从此链接下载 jar 文件。如果您使用 maven,您可以通过将以下代码添加到项目的 pom.xml 文件中轻松地在应用程序中导入 jar 文件。
com.e-iceblue
e-iceblue
https://repo.e-iceblue.cn/repository/maven-public/
e-iceblue
spire.xls
15.3.1
java 在 excel 中复制行
要在 excel 中复制行并保留格式,你可以使用 worksheet.copyrow(cellrange sourcerow, worksheet destsheet, int destrowindex, enumset
- 创建 workbook 类的对象。
- 使用 workbook.loadfromfile() 方法加载 excel 文件。
- 使用 workbook.getworksheets().get(index) 方法获取源工作表和目标工作表。
- 使用 worksheet.getrows()[index] 方法获取要复制的行。
- 使用 worksheet.copyrow(cellrange sourcerow, worksheet destsheet, int destrowindex, enumset
copyoptions) 方法复制行及其格式。 - 将源行的列宽复制到目标行中的相应单元格。
- 使用 workbook.savetofile() 方法将工作簿保存到文件中。
- java
import com.spire.xls.*;
import java.util.enumset;
public class copyrows {
public static void main(string[] args) {
// 创建workbook对象
workbook workbook = new workbook();
// 加载excel文件
workbook.loadfromfile("示例.xlsx");
// 获取源工作表
worksheet sheet1 = workbook.getworksheets().get(0);
// 获取目标工作表
worksheet sheet2 = workbook.getworksheets().get(1);
// 获取要复制的行
cellrange row = sheet1.getrows()[0];
// 将行从源工作表复制到目标工作表
sheet1.copyrow(row, sheet2, 1, enumset.of(copyrangeoptions.all));
int columns = sheet1.getcolumns().length;
// 将源行中单元格的列宽复制到目标行
for (int i = 0; i < columns; i )
{
double columnwidth = row.getcolumns()[i].getcolumnwidth();
sheet2.getrows()[0].getcolumns()[i].setcolumnwidth(columnwidth);
}
// 保存工作簿到文件
workbook.savetofile("复制行.xlsx", excelversion.version2016);
workbook.dispose();
}
}
java 在 excel 中复制列
要在 excel 中复制列并保留格式,可以使用 worksheet.copycolumn(cellrange sourcecolumn, worksheet destsheet, int destcolindex, enumset
- 创建 workbook 类的对象。
- 使用 workbook.loadfromfile() 方法加载 excel 文件。
- 使用 workbook.getworksheets().get(index) 方法获取源工作表和目标工作表。
- 使用 worksheet.getcolumns()[index] 方法获取要复制的列。
- 使用 worksheet.copycolumn(cellrange sourcecolumn, worksheet destsheet, int destcolindex, enumset
copyoptions) 方法复制列及其格式。 - 将源列中单元格的行高复制到目标列中的相应单元格。
- 使用 workbook.savetofile() 方法保存工作簿。
- java
import com.spire.xls.*;
import java.util.enumset;
public class copycolumns {
public static void main(string[] args) {
// 创建workbook对象
workbook workbook = new workbook();
// 加载excel文件
workbook.loadfromfile("示例.xlsx");
// 获取源工作表
worksheet sheet1 = workbook.getworksheets().get(0);
// 获取目标工作表
worksheet sheet2 = workbook.getworksheets().get(1);
// 获取要复制的列
cellrange column = sheet1.getcolumns()[0];
// 将列从源工作表复制到目标工作表
sheet1.copycolumn(column, sheet2, 1, enumset.of(copyrangeoptions.all));
int rows = column.getrows().length;
// 将源列中单元格的行高复制到目标列
for (int i = 0; i < rows; i )
{
double rowheight = column.getrows()[i].getrowheight();
sheet2.getcolumns()[0].getrows()[i].setrowheight(rowheight);
}
// 保存工作簿到文件
workbook.savetofile("复制列.xlsx", excelversion.version2016);
workbook.dispose();
}
}
java 在 excel 中复制单元格
除了复制行和列外,spire.xls for java 还提供了 cellrange.copy(cellrange destrange, enumset
- 创建 workbook 类的对象。
- 使用 workbook.loadfromfile() 方法加载 excel 文件。
- 使用 workbook.getworksheets().get(index) 方法获取源工作表和目标工作表。
- 使用 worksheet.getcellrange() 方法获取源单元格区域和目标单元格区域。
- 使用 cellrange.copy(cellrange destrange, enumset
copyoptions) 方法将源单元格区域及其格式复制到目标单元格区域。 - 将源单元格区域的行高和列宽复制到目标单元格区域。
- 使用 workbook.savetofile() 方法保存工作簿。
- java
import com.spire.xls.*;
import java.util.enumset;
public class copycells {
public static void main(string[] args) {
// 创建workbook对象
workbook workbook = new workbook();
// 加载excel文件
workbook.loadfromfile("示例.xlsx");
// 获取源工作表
worksheet sheet1 = workbook.getworksheets().get(0);
// 获取目标工作表
worksheet sheet2 = workbook.getworksheets().get(1);
// 获取源单元格区域
cellrange range1 = sheet1.getcellrange("a1:e7");
// 获取目标单元格区域
cellrange range2 = sheet2.getcellrange("a1:e7");
// 将源单元格区域复制到目标单元格区域
range1.copy(range2, enumset.of(copyrangeoptions.all));
// 将源单元格区域的行高和列宽复制到目标单元格区域
for (int i = 0; i < range1.getrows().length; i )
{
cellrange row = range1.getrows()[i];
for (int j = 0; j < row.getcolumns().length; j )
{
cellrange column = row.getcolumns()[j];
range2.getrows()[i].getcolumns()[j].setcolumnwidth(column.getcolumnwidth());
range2.getrows()[i].setrowheight(row.getrowheight());
}
}
// 保存工作簿到文件
workbook.savetofile("复制单元格.xlsx", excelversion.version2016);
workbook.dispose();
}
}
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。