Spire.OCR 1.9.16 已发布。本次更新优化了内存回收效率和文字识别速度。此外,一些已知问题也在该版本中成功修复,如倒立文本的识别结果不正确的问题。详情请阅读以下内容。
问题修复:
在 Microsoft Excel 中,复制行、列和单元格是日常数据处理中的常见操作。这些功能使用户能够快速复用数据和格式等内容,从而节省时间并减少手动输入错误的风险。在 Java 中,开发者可以利用 Spire.XLS for Java 库轻松实现 Excel 行、列和单元格的复制并保留原有格式。本文将介绍如何使用 Spire.XLS for Java 和 Java 在 Excel 中复制行、列和单元格数据并保留格式。
首先,您需要将 Spire.Xls.jar 文件作为依赖项添加到您的 Java 程序中。可以从此链接下载 JAR 文件。如果您使用 Maven,您可以通过将以下代码添加到项目的 pom.xml 文件中轻松地在应用程序中导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls</artifactId>
<version>16.9.2</version>
</dependency>
</dependencies>
要在 Excel 中复制行并保留格式,你可以使用 Worksheet.copyRow(CellRange sourceRow, Worksheet destSheet, int destRowIndex, EnumSet<CopyRangeOptions> copyOptions) 方法。具体步骤如下:
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();
}
}

要在 Excel 中复制列并保留格式,可以使用 Worksheet.copyColumn(CellRange sourceColumn, Worksheet destSheet, int destColIndex, EnumSet<CopyRangeOptions> copyOptions) 方法。具体步骤如下:
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();
}
}

除了复制行和列外,Spire.XLS for Java 还提供了 CellRange.copy(CellRange destRange, EnumSet<CopyRangeOptions> copyOptions) 方法,支持复制特定单元格或单元格区域。具体步骤如下:
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();
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
雷达图又称蜘蛛图,是一种显示二维多元数据的图形方法。图表上的每个辐条代表一个不同的变量,数据点沿着这些辐条绘制。雷达图尤其适用于比较不同实体在多个标准中的表现。本文将演示如何使用 Spire.XLS for Python 通过 Python 在 Excel 中创建雷达图。
此教程需要 Spire.XLS for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows中。
pip install Spire.XLS
如果您不确定如何安装,请参考: 如何在 Windows中安装 Spire.XLS for Python
Spire.XLS for Python 提供了 Worksheet.Charts.Add(ExcelChartType.Radar) 方法,用于在 Excel 工作表中添加标准雷达图。具体步骤如下:
from spire.xls import *
from spire.xls.common import *
# 创建Workbook对象
workbook = Workbook()
# 获取第一张工作表
sheet = workbook.Worksheets[0]
# 在指定单元格中添加数据
sheet.Range["A1"].Value = "评分"
sheet.Range["A2"].Value = "沟通能力"
sheet.Range["A3"].Value = "工作经验"
sheet.Range["A4"].Value = "工作效率"
sheet.Range["A5"].Value = "领导能力"
sheet.Range["A6"].Value = "创新能力"
sheet.Range["A7"].Value = "协作能力"
sheet.Range["B1"].Value = "小李"
sheet.Range["B2"].NumberValue = 4
sheet.Range["B3"].NumberValue = 3
sheet.Range["B4"].NumberValue = 4
sheet.Range["B5"].NumberValue = 3
sheet.Range["B6"].NumberValue = 5
sheet.Range["B7"].NumberValue = 5
sheet.Range["C1"].Value = "小张"
sheet.Range["C2"].NumberValue = 2
sheet.Range["C3"].NumberValue = 5
sheet.Range["C4"].NumberValue = 4
sheet.Range["C5"].NumberValue = 4
sheet.Range["C6"].NumberValue = 3
sheet.Range["C7"].NumberValue = 3
# 设置字体样式
sheet.Range["A1:C1"].Style.Font.IsBold = True
sheet.Range["A1:C1"].Style.Font.Size = 11
sheet.Range["A1:C1"].Style.Font.Color = Color.get_White()
# 设置行高和列宽
sheet.Rows[0].RowHeight = 20
sheet.Range["A1:C7"].Columns[0].ColumnWidth = 15
# 设置单元格样式
sheet.Range["A1:C1"].Style.Color = Color.get_DarkBlue()
sheet.Range["A2:C7"].Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin
sheet.Range["A2:C7"].Style.Borders[BordersLineType.EdgeBottom].Color = Color.get_DarkBlue()
sheet.Range["B1:C7"].HorizontalAlignment = HorizontalAlignType.Center
sheet.Range["A1:C7"].VerticalAlignment = VerticalAlignType.Center
# 在工作表中添加雷达图
chart = sheet.Charts.Add(ExcelChartType.Radar)
# 设置图标位置
chart.LeftColumn = 4
chart.TopRow = 4
chart.RightColumn = 14
chart.BottomRow = 29
# 设置图标的数据源
chart.DataRange = sheet.Range["A1:C7"]
chart.SeriesDataFromRange = False
# 设置图表标题
chart.ChartTitle = "员工绩效考核"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 14
chart.PlotArea.Fill.Visible = False
chart.Legend.Position = LegendPositionType.Corner
# 保存结果文件
workbook.SaveToFile("Excel雷达图.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

填充雷达图是标准雷达图的一种变体,不同之处在于每个数据点之间的区域用颜色填充。下面是使用 Python 创建填充雷达图的步骤:
from spire.xls import *
from spire.xls.common import *
# 创建Workbook对象
workbook = Workbook()
# 获取第一张工作表
sheet = workbook.Worksheets[0]
# 在指定单元格中添加数据
sheet.Range["A1"].Value = "评分"
sheet.Range["A2"].Value = "沟通能力"
sheet.Range["A3"].Value = "工作经验"
sheet.Range["A4"].Value = "工作效率"
sheet.Range["A5"].Value = "领导能力"
sheet.Range["A6"].Value = "创新能力"
sheet.Range["A7"].Value = "协作能力"
sheet.Range["B1"].Value = "小李"
sheet.Range["B2"].NumberValue = 4
sheet.Range["B3"].NumberValue = 3
sheet.Range["B4"].NumberValue = 4
sheet.Range["B5"].NumberValue = 3
sheet.Range["B6"].NumberValue = 5
sheet.Range["B7"].NumberValue = 5
sheet.Range["C1"].Value = "小张"
sheet.Range["C2"].NumberValue = 2
sheet.Range["C3"].NumberValue = 5
sheet.Range["C4"].NumberValue = 4
sheet.Range["C5"].NumberValue = 4
sheet.Range["C6"].NumberValue = 3
sheet.Range["C7"].NumberValue = 3
# 设置字体样式
sheet.Range["A1:C1"].Style.Font.IsBold = True
sheet.Range["A1:C1"].Style.Font.Size = 11
sheet.Range["A1:C1"].Style.Font.Color = Color.get_White()
# 设置行高和列宽
sheet.Rows[0].RowHeight = 20
sheet.Range["A1:C7"].Columns[0].ColumnWidth = 15
# 设置单元格样式
sheet.Range["A1:C1"].Style.Color = Color.get_DarkBlue()
sheet.Range["A2:C7"].Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin
sheet.Range["A2:C7"].Style.Borders[BordersLineType.EdgeBottom].Color = Color.get_DarkBlue()
sheet.Range["B1:C7"].HorizontalAlignment = HorizontalAlignType.Center
sheet.Range["A1:C7"].VerticalAlignment = VerticalAlignType.Center
# 在工作表中添加填充雷达图
chart = sheet.Charts.Add(ExcelChartType.RadarFilled)
# 设置图标位置
chart.LeftColumn = 4
chart.TopRow = 4
chart.RightColumn = 14
chart.BottomRow = 29
# 设置图标的数据源
chart.DataRange = sheet.Range["A1:C7"]
chart.SeriesDataFromRange = False
# 设置图表标题
chart.ChartTitle = "员工绩效考核"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 14
chart.PlotArea.Fill.Visible = False
chart.Legend.Position = LegendPositionType.Corner
# 保存结果文件
workbook.SaveToFile("Excel填充雷达图.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
表格是 Excel 工作表中的一个特殊区域,具有表头、可选的汇总行,以及内置的筛选、排序、数据插入与删除、计算列等功能,这些功能极大地简化了数据处理与分析的过程。对于希望在 Java 应用程序中实现 Excel 数据操作自动化或集成的开发者来说,掌握在工作表中创建、修改或删除表格的能力至关重要。本文将探讨如何使用 Spire.XLS for Java 通过 Java 代码在 Excel 工作表中创建、修改和删除表格,从而高效地管理 Excel 文件中的数据。
首先,您需要在 Java 程序中添加 Spire.Xls.jar 文件作为一个依赖项。您可以从此链接下载 JAR 文件。如果您使用 Maven,则可以通过在 pom.xml 文件中添加以下代码轻松导入该 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls</artifactId>
<version>16.9.2</version>
</dependency>
</dependencies>
我们可以使用 Worksheet.getListObjects().create(String tableName, IXLSRange cellRange) 方法在 Excel 工作表中基于指定单元格范围直接创建表格。以下是用 Java 在 Excel 工作表中创建表格的操作步骤:
import com.spire.xls.CellRange;
import com.spire.xls.TableBuiltInStyles;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import com.spire.xls.core.IListObject;
public class CreateTableExcel {
public static void main(String[] args) {
// 创建一个 Workbook 实例
Workbook workbook = new Workbook();
// 加载一个 Excel 文件
workbook.loadFromFile("示例.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.getWorksheets().get(0);
// 获取表格的单元格范围
CellRange range = sheet.getCellRange("A1:F10");
// 创建一个表格
IListObject table1 = sheet.getListObjects().create("Table1", range);
// 为表格应用内置样式
table1.setBuiltInTableStyle(TableBuiltInStyles.TableStyleLight16);
// 保存工作簿
workbook.saveToFile("output/创建Excel表格.xlsx");
workbook.dispose();
}
}

Spire.XLS for Java 在 IListObject 类中提供的方法可以用于设置或修改工作表中表格的属性,如表格的名称、单元格范围、样式和标题可见性。以下是修改 Excel 工作表中表格的操作步骤:
import com.spire.xls.TableBuiltInStyles;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import com.spire.xls.core.IListObject;
public class ModifyTableExcel {
public static void main(String[] args) {
// 创建一个 Workbook 实例
Workbook workbook = new Workbook();
// 加载一个 Excel 文件
workbook.loadFromFile("output/创建Excel表格.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.getWorksheets().get(0);
// 获取表格
IListObject table = sheet.getListObjects().get(0);
// 修改表格
table.setName("NewTable"); // 更改表格名称
table.setLocation(sheet.getRange().get("A1:C10")); // 更改表格位置
table.setBuiltInTableStyle(TableBuiltInStyles.TableStyleDark5); // 更改表格样式
table.setDisplayHeaderRow(false); // 隐藏表头行
// 保存工作簿
workbook.saveToFile("output/修改Excel表格.xlsx");
workbook.dispose();
}
}

我们可以使用 Worksheet.getListObjects().removeAt(int index) 方法从 Excel 工作表中删除创建的表格,从而将表格区域转换回普通单元格区域,并删除所有相关格式。以下是删除 Excel 中表格的操作步骤:
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class RemoveTableExcel {
public static void main(String[] args) {
// 创建一个 Workbook 实例
Workbook workbook = new Workbook();
// 加载一个 Excel 文件
workbook.loadFromFile("output/创建Excel表格.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.getWorksheets().get(0);
// 删除表格
sheet.getListObjects().removeAt(0);
// 保存工作簿
workbook.saveToFile("output/删除Excel表格.xlsx");
workbook.dispose();
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
自定义文档属性是 Word 文档中由用户定义的字段,用于存储特定的元数据。与 Microsoft Word 预定义的标准属性(如标题、作者或主题)不同,自定义属性允许用户根据实际需求灵活地定义和管理额外的元数据字段。本文将介绍如何使用 Spire.Doc for Python 和 Python 在 Word 文档中添加、提取和删除自定义文档属性。
本教程需要 Spire.Doc for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Doc
如果您不确定如何安装,请参考:如何在 Windows 中安装 Spire.Doc for Python
Spire.Doc for Python 提供了 CustomDocumentProperties.Add() 方法,允许开发人员为 Word 文档的自定义属性赋予不同类型的值,如文本(Text)、日期(Date)、数字(Number)或“是/否”(Yes or no)等。下面的步骤展示了如何使用 Spire.Doc for Python 将不同类型的自定义属性添加到 Word 文档中:
from spire.doc import *
from spire.doc.common import *
# 创建Document对象
document = Document()
# 加载Word文档
document.LoadFromFile("示例.docx")
# 向文档中添加不同类型值的自定义文档属性
customProperties = document.CustomDocumentProperties
customProperties.Add("文档类别", String("技术报告"))
customProperties.Add("修订编号", Int32(5))
customProperties.Add("最后审阅日期", DateTime(2024, 12, 1, 0, 0, 0, 0))
customProperties.Add("是否需要跟进", Boolean(False))
# 保存结果文档
document.SaveToFile("添加自定义文档属性.docx", FileFormat.Docx2016)
document.Close()

提取自定义文档属性可以帮助开发人员访问文档中的元数据,便于进行深入分析、生成报告或与其他应用程序集成。在 Spire.Doc for Python 中,开发人员可以使用 CustomDocumentProperty.Name 和 CustomDocumentProperty.Value 属性轻松获取这些自定义属性的名称和值。以下是详细步骤:
from spire.doc import *
from spire.doc.common import *
# 创建Document对象
document = Document()
# 加载Word文档
document.LoadFromFile("添加自定义文档属性.docx")
# 打开文本文件保存提取的自定义属性
with open("自定义文档属性.txt", "w") as output_file:
# 遍历所有自定义文档属性
for i in range(document.CustomDocumentProperties.Count):
# 提取每个自定义属性的名称和值
property_name = document.CustomDocumentProperties[i].Name
property_value = document.CustomDocumentProperties[i].Value
# 将属性详细信息写入文本文件
output_file.write(f"{property_name}: {property_value}\n")
document.Close()

删除自定义文档属性对于保护文档的机密性、减小文件大小以及确保元数据不包含过时或无关信息至关重要。Spire.Doc for Python 为开发人员提供了 DocumentProperties.Remove() 方法,用于删除指定的自定义文档属性。以下是详细步骤:
from spire.doc import *
from spire.doc.common import *
# 创建Document对象
document = Document()
# 加载Word文档
document.LoadFromFile("添加自定义文档属性.docx")
# 遍历所有自定义文档属性
customProperties = document.CustomDocumentProperties
for i in range(customProperties.Count - 1, -1, -1):
# 通过名称删除每个自定义文档属性
customProperties.Remove(customProperties.get_Item(i).Name)
# 保存结果文档
document.SaveToFile("删除自定义文档属性.docx", FileFormat.Docx2016)
document.Close()

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.XLS 14.12.2 现已发布。该版本支持多种新函数,包括 SEC、WRAPCOLS、WRAPROWS、PERCENTOF、REPTARRAY、SECH、SUBSTITUTES 等。此外,它还修复了一些在转换 Excel 到 PDF 和打印 Excel 文件时出现的问题。新功能及问题修复详情如下。
新功能:
问题修复:
Spire.PDF 10.12.4 现已正式发布。最新版本支持在进行多页打印时设置自动旋转方向。同时,一些已知问题也在本次更新中被成功修复,例如打印 PDF 文档时内容丢失的问题。详情请查阅以下内容。
新功能:
PdfMultiPageLayout printParameters = pdf.PrintSettings.SelectMultiPageLayout(1, 2);
printParameters.AutoRotate = true;
pdf.PrintSettings.Duplex = Duplex.Horizontal;PdfDocument doc = new PdfDocument();
doc.LoadFromFile(inputFile);
PdfFormWidget formWidget = (PdfFormWidget)doc.Form;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.AppendLine("btnAction:");
for (int i = 0; i < formWidget.FieldsWidget.Count; ++i)
{
var field = formWidget.FieldsWidget[i] as PdfButtonWidgetFieldWidget;
if (field.Actions.MouseUp != null && field.Actions.MouseUp is PdfNamedAction)
{
var mouseUp = (PdfNamedAction)field.Actions.MouseUp;
stringBuilder.AppendLine(formWidget.FieldsWidget[i].Name + "-MouseUp-" + mouseUp.Destination.ToString());
}
else if (field.Actions.MouseDown != null && field.Actions.MouseDown is PdfNamedAction)
{
var mouseDown = (PdfNamedAction)field.Actions.MouseDown;
stringBuilder.AppendLine(formWidget.FieldsWidget[i].Name + "-MouseDown--" + mouseDown.Destination.ToString());
}
else if (field.Actions.MouseDown != null && field.Actions.MouseDown is PdfUriAction)
{
var mouseDown = (PdfUriAction)field.Actions.MouseDown;
stringBuilder.AppendLine(formWidget.FieldsWidget[i].Name + "-MouseDown--" + mouseDown.Uri.ToString());
}
else if (field.Actions.MouseUp != null && field.Actions.MouseUp is PdfUriAction)
{
var mouseUp = (PdfUriAction)field.Actions.MouseUp;
stringBuilder.AppendLine(formWidget.FieldsWidget[i].Name + "-MouseUp-" + mouseUp.Uri.ToString());
}
}
File.WriteAllText(outputFile, stringBuilder.ToString());
doc.Dispose();问题修复:
在日常操作 Excel 文档时,复制行、列和单元格是非常常见的需求。无论是整理数据、创建模板还是生成报表,复制操作都能大大提高工作效率。然而,复制不仅仅是将数据从一个位置拷贝到另一个位置,通常还涉及如何准确保留原始单元格的格式、公式、样式以及其他相关属性。这篇文章将介绍如何使用 Spire.XLS for .NET 和 C# 在 Excel 中复制行、列和单元格并保留格式。
首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.XLS
要在 Excel 中复制行并保留格式,你可以使用 Worksheet.CopyRow(CellRange sourceRow, Worksheet destSheet, int destRowIndex, CopyRangeOptions copyOptions) 方法。通过 CopyRangeOptions 参数,你可以灵活设置复制选项,例如:复制所有格式、复制条件格式、复制数据验证,或者仅复制公式的结果值等等。具体步骤如下:
using Spire.Xls;
namespace CopyRows
{
internal class Program
{
static void Main(string[] args)
{
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx");
// 获取源工作表
Worksheet sheet1 = workbook.Worksheets[0];
// 获取目标工作表
Worksheet sheet2 = workbook.Worksheets[1];
// 获取要复制的行
CellRange row = sheet1.Rows[0];
// 将源工作表的行复制到目标工作表的第一行
sheet1.CopyRow(row, sheet2, 1, CopyRangeOptions.All);
int columns = sheet1.Columns.Length;
// 将源行的列宽复制到目标行的相应单元格
for (int i = 0; i < columns; i++)
{
double columnWidth = row.Columns[i].ColumnWidth;
sheet2.Rows[0].Columns[i].ColumnWidth = columnWidth;
}
// 保存修改后的工作簿
workbook.SaveToFile("复制行.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
}
}
}

同样地,要在 Excel 工作表中复制列并保留格式,你可以使用 Worksheet.CopyColumn(CellRange sourceColumn, Worksheet destSheet, int destColIndex, CopyRangeOptions copyOptions) 方法。具体步骤如下:
using Spire.Xls;
namespace CopyColumns
{
internal class Program
{
static void Main(string[] args)
{
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx");
// 获取源工作表
Worksheet sheet1 = workbook.Worksheets[0];
// 获取目标工作表
Worksheet sheet2 = workbook.Worksheets[1];
// 获取要复制的列
CellRange column = sheet1.Columns[0];
// 将源工作表的列复制到目标工作表的第一列
sheet1.CopyColumn(column, sheet2, 1, CopyRangeOptions.All);
int rows = column.Rows.Length;
// 将源列的行高复制到目标列的相应单元格
for (int i = 0; i < rows; i++)
{
double rowHeight = column.Rows[i].RowHeight;
sheet2.Columns[0].Rows[i].RowHeight = rowHeight;
}
// 保存修改后的工作簿
workbook.SaveToFile("复制列.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
}
}
}

除了复制行和列以外,Spire.XLS for .NET 还提供了 CellRange.Copy(CellRange destRange, CopyRangeOptions copyOptions) 方法,支持复制特定单元格或单元格区域。具体步骤如下:
using Spire.Xls;
namespace CopyCells
{
internal class Program
{
static void Main(string[] args)
{
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx");
// 获取源工作表
Worksheet sheet1 = workbook.Worksheets[0];
// 获取目标工作表
Worksheet sheet2 = workbook.Worksheets[1];
// 获取源单元格区域
CellRange range1 = sheet1.Range["A1:E7"];
// 获取目标单元格区域
CellRange range2 = sheet2.Range["A1:E7"];
// 将源单元格区域复制到目标单元格区域
range1.Copy(range2, CopyRangeOptions.All);
// 将源单元格区域的行高和列宽复制到目标单元格区域
for (int i = 0; i < range1.Rows.Length; i++)
{
CellRange row = range1.Rows[i];
for (int j = 0; j < row.Columns.Length; j++)
{
CellRange column = row.Columns[j];
range2.Rows[i].Columns[j].ColumnWidth = column.ColumnWidth;
range2.Rows[i].RowHeight = row.RowHeight;
}
}
// 保存修改后的工作簿
workbook.SaveToFile("复制单元格.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
}
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
2025 年元旦节将至,E-ICEBLUE 携全体员工预祝大家节日快乐、万事如意!
为感谢您一直以来的信任和支持,我司将于 2024年12月15日 至 2025年1月15日 期间推出本年度最大力度的促销活动。活动期间,新老顾客有丰富多样的优惠方案可以选择,您可以用更实惠的价格购买到我们的产品和服务。如果您对我们产品的测试效果感到满意,可以在活动期间下单以获取超值折扣优惠。若您已经购买了许可证,在活动期间续费也可以享受额外的折扣。
如果您想获取此优惠,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取报价或合同。
Spire.Presentation 9.12.1 已发布。本次更新增强了 PPT 到 PDF 以及 HTML 到 PPT 的转换功能。此外,一些已知问题也在该版本中成功修复,如给空数据源图表赋值时程序抛出异常的问题。详情请阅读以下内容。
问题修复:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-NET.html