当您需要创建类似的工作表或希望在不影响原始工作表的情况下对工作表进行更改时,复制工作表是非常有效的方法之一。此功能可以为您节省大量时间和精力,因为它允许您快速重用现有工作表中的数据、公式、格式和布局等信息,而无需从头开始创建新的工作表。本文将介绍如何使用 Spire.XLS for C++ 在 C++ 中复制 Excel 中的工作表。
有两种方法可以将 Spire.XLS for C++ 集成到您的应用程序中。一种方法是通过 NuGet 安装它,另一种方法是从我们的网站下载包并将库复制到您的程序中。通过 NuGet 安装更简单,更推荐使用。您可以通过访问以下链接找到更多详细信息。
如何将 Spire.XLS for C++ 集成到 C++ 程序中
您可以在同一工作簿中复制工作表,方法是将新工作表添加到工作簿中,然后将工作表复制到新工作表中。
以下步骤演示了如何在同一工作簿中复制工作表:
#include "Spire.Xls.o.h"
#include <iostream>
using namespace Spire::Xls;
int main() {
std::wstring inputFile = L"D:\\VS2022项目\\安装Spire.XLS\\年度盈利情况.xlsx";
std::wstring outputFile = L"在同一工作簿中复制工作表.xlsx";
//初始化Workbook类的实例
intrusive_ptr<Workbook> workbook = new Workbook();
//加载Excel文档
workbook->LoadFromFile(inputFile.c_str());
//获取第一个和第二个工作表
intrusive_ptr<Worksheet> sheet = dynamic_pointer_cast<Worksheet>(workbook->GetWorksheets()->Get(0));
intrusive_ptr<Worksheet> sheet1 = dynamic_pointer_cast<Worksheet>(workbook->GetWorksheets()->Add(L"复制-年度盈利情况"));
//intrusive_ptr<CellRange> sourceRange = dynamic_pointer_cast<CellRange>(sheet->GetAllocatedRange());
intrusive_ptr<CellRange> sourceRange = CellRange::Dynamic_cast<CellRange>(sheet->GetMaxDisplayRange());
//将第一个工作表复制到第二个工作表
sheet->Copy(sourceRange, sheet1, sheet->GetFirstRow(), sheet->GetFirstColumn(), true);
//保存结果文档
workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2013);
workbook->Dispose();
}
若要将工作表从一个工作簿复制到另一个工作簿,您需要向目标工作簿添加一个新工作表,然后将该工作表从源工作簿复制到目标工作簿的新工作表。值得注意的是,如果要保留源工作表的源格式,则需要将源工作簿的主题复制到目标工作簿。
以下步骤演示了如何将工作表从一个工作簿复制到另一个工作簿并保留其源格式:
#include "Spire.Xls.o.h"
#include <iostream>
using namespace std;
using namespace Spire::Xls;
int main() {
std::wstring inputFile = L"D:\\VS2022项目\\安装Spire.XLS\\年度盈利情况.xlsx";
std::wstring outputFile = L"将工作表复制到另一个XLS文件.xlsx";
//初始化Workbook类的实例
intrusive_ptr<Workbook> workbook = new Workbook();
//加载Excel文档
workbook->LoadFromFile(inputFile.c_str());
//获取特定的工作表
intrusive_ptr<Worksheet> sheet = dynamic_pointer_cast<Worksheet>(workbook->GetWorksheets()->Get(0));
//创建另一个工作簿
intrusive_ptr<Workbook> workbook1 = new Workbook();
//获取工作簿中的第一张工作表
intrusive_ptr<Worksheet> sheet1 = dynamic_pointer_cast<Worksheet>(workbook1->GetWorksheets()->Get(0));
//将工作表复制到另一个Excel文件中的目标工作表
sheet1->CopyFrom(sheet);
//保存文档
workbook1->SaveToFile(outputFile.c_str(), ExcelVersion::Version2013);
}
如果您只想与他人共享可见工作表,而不是整个工作簿,那么可以将可见工作表复制到一个新的工作簿中。
以下步骤演示了如何将一个工作簿中的可见工作表复制到一个新的工作簿中:
#include "Spire.Xls.o.h"
#include <iostream>
using namespace std;
using namespace Spire::Xls;
int main() {
std::wstring inputFile = L" D:\\VS2022项目\\安装Spire.XLS\\年度盈利情况.xlsx ";
std::wstring outputFile = L"复制可见工作表.xlsx";
//初始化Workbook类的实例
intrusive_ptr<Workbook> workbook = new Workbook();
//加载源工作簿
workbook->LoadFromFile(inputFile.c_str());
//新建一个工作簿
intrusive_ptr<Workbook> workbookNew = new Workbook();
workbookNew->SetVersion(ExcelVersion::Version2013);
workbookNew->GetWorksheets()->Clear();
//循环遍历工作表
for (int i = 0; i < workbook->GetWorksheets()->GetCount(); i++)
{
intrusive_ptr<Worksheet> sheet = dynamic_pointer_cast<Worksheet>(workbook->GetWorksheets()->Get(i));
//判断工作表是否可见
if (sheet->GetVisibility() == WorksheetVisibility::Visible)
{
//将工作表复制到新工作簿
wstring name = sheet->GetName();
workbookNew->GetWorksheets()->AddCopy(sheet);
}
}
//保存文档
workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2013);
workbook->Dispose();
}如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.XLS 13.5.0 已发布。该版本新增支持 ISO.CEILING 和 WORKDAY.INTL 函数,以及 WPS 中的 EVALUATE() 函数。同时,该版本还增强了 Excel 到 HTML 和图片的转换。许多已知问题也在该版本中被成功修复,如:保存文档后菜单栏功能区不正确的问题。详情请阅读以下内容。
新功能:
Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Formula = "ISO.CEILING(12.69,2)";
workbook.CalculateAllValue();
workbook.SaveToFile("result.xlsx",ExcelVersion.Version2016);Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Formula = "=WORKDAY.INTL(DATE(2023,3,17),25,1,DATE(2023,3,20))";
workbook.CalculateAllValue();
workbook.SaveToFile("result.xlsx",ExcelVersion.Version2016);问题修复:
Spire.XLS for Java 13.5.2 已发布。该版本增强了 Excel 到 PDF 的转换。此外,该版本还修复了一些已知问题,如修复了加载Excel文件程序抛异常“java.lang.NullPointerException”的问题。详情请阅读以下内容。
问题修复:
Open XML 是由 Microsoft 开发的一种基于 XML 的文件格式,允许用户存储和交换各种类型的文件,如文字处理文档、电子表格、演示文稿、图表和图示。它在各种应用程序得到了广泛的认可与支持,是长期数据保存的可靠选择。
在某些情况下,您可能需要将 Excel 文件转换为 Open XML 格式,以确保这些文件可以被其他软件打开和读取。另一方面,也可能有用户需要将 Open XML 文件转换为 Excel 格式,以利用 Excel 中可用的数据分析工具,如数据透视表和图表。在本文中,我们将介绍如何使用 Spire.XLS for .NET 将 Excel 转换为 Open XML 或将 Open XML 转换为 Excel。
首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.XLS若要将 Excel 文件转换为 Open XML,您需要使用 Workbook.LoadFromFile(string fileName) 方法加载 Excel 文件,然后调用 Workbook.SaveAsXml(string fileName) 方法将其保存为 Open XML 格式。
以下步骤演示了如何将 Excel 文件转换为 Open XML:
using Spire.Xls;
namespace ConvertExcelToOpenXML
{
internal class Program
{
static void Main(string[] args)
{
//初始化Workbook类的实例
Workbook workbook = new Workbook();
//加载Excel文件
workbook.LoadFromFile("示例文档.xlsx");
//将Excel文件保存为Open XML格式
workbook.SaveAsXml("ExcelToXML.xml");
}
}
}Imports Spire.Xls
Namespace ConvertExcelToOpenXML
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'初始化Workbook类的实例
Dim workbook As Workbook = New Workbook()
'加载Excel文件
workbook.LoadFromFile("示例文档.xlsx")
'将Excel文件保存为Open XML格式
workbook.SaveAsXml("ExcelToXML.xml")
End Sub
End Class
End Namespace
若要将 Open XML 文件转换为 Excel,您需要使用 Workbook.LoadFromXml(string fileName) 方法加载 Open XML 文件,然后调用 Workbook.SaveToFile(string fileName, ExcelVersion version) 方法将其保存为 Excel 格式。
以下步骤演示了如何将 Open XML 文件转换为 Excel:
using Spire.Xls;
namespace ConvertOpenXMLToExcel
{
internal class Program
{
static void Main(string[] args)
{
//初始化Workbook类的实例
Workbook workbook = new Workbook();
//加载Open XML文件
workbook.LoadFromXml("ExcelToXML.xml");
//将Excel格式保存为Open XML文件
workbook.SaveToFile("XMLToExcel.xlsx", ExcelVersion.Version2016);
}
}
}Imports Spire.Xls
Namespace ConvertOpenXMLToExcel
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'初始化Workbook类的实例
Dim workbook As Workbook = New Workbook()
'加载Open XML文件
workbook.LoadFromXml("ExcelToXML.xml")
'将Excel格式保存为Open XML文件
workbook.SaveToFile("XMLToExcel.xlsx", ExcelVersion.Version2016)
End Sub
End Class
End Namespace
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Office 8.4.1 已发布。在该版本中,Spire.PDF 提升了打印 PDF 文档的速度和转换 PDF 文档到图片的速度;Spire.Doc 支持 Word2013 表格的新增样式;Spire.Spreadsheet 支持保存到PDF文档。此外,许多已知问题也在该版本中被成功修复。详情请阅读以下内容。
该版本涵盖了最新版的 Spire.Doc,Spire.PDF,Spire.XLS,Spire.Email,Spire.DocViewer, Spire.PDFViewer,Spire.Presentation,Spire.Spreadsheet, Spire.OfficeViewer, Spire.DocViewer, Spire.Barcode, Spire.DataExport。
版本信息如下:
https://www.e-iceblue.cn/Downloads/Spire-Office-NET.html
新功能:
问题修复:
新功能:
问题修复:
新功能:
this.spreadsheet1.SaveToFile("1.pdf", FileFormatType.PDF);问题修复:
Spire.Doc 11.4.12发布。本次更新支持了Word2013表格的新增样式。同时,该版本还增强了 Word 到 PDF的转换。此外,许多已知问题也在该版本中成功被修复,如:修复了加载文档然后保存到新文档后图片丢失的问题。详情请阅读以下内容。
新功能:
问题修复:
Spire.PDF 9.4.12 已发布。该版本提升了打印 PDF 文档的速度和转换 PDF 文档到图片的速度。该版本还增强了 PDF 到 Word、SVG 和图片的转换。此外,本次更新还修复了大量已知问题,如压缩 PDF 文档中的图片后,PDF 文档变大的问题。详情请阅读以下内容。
新功能:
问题修复:
Spire.Cloud 8.4.8已发布。在本次更新中,该版本支持了禁止下载文档的功能,并支持了在预览模式下不显示光标的功能。此外,本次更新还修复了一些已知问题,如:修复了拷贝项目编号格式的文本粘贴到在线编辑文档中项目符号样式不一致的问题。详情请阅读以下内容。
问题修复:
Spire.PDF for Java 9.4.9 已发布。改版本支持了判断 PDF 流文档是否被加密的功能,还增强了 PDF 文档到 Word、HTML 以及图片的转换。此外,改版本还修复了一些已知问题,如用反射使用产品时报错的问题。详情请阅读以下内容。
新功能:
boolean result = PdfDocument.isPasswordProtected(PDFstream);问题修复:
在我司全体员工的不懈努力下,Spire.XLS for Python 已于2023年4月上线。目前 Python 产品已开放下载,欢迎大家试用。更多的 Python 产品也即将推出,敬请期待。
Spire.XLS for Python 是一款专业的 Python Excel 开发组件,可以用于各种 Python 平台。Spire.XLS for Python 提供了一个对象模型 Excel 开发组件,使开发人员可以快速地在 Python 平台上完成对 Excel 的各种编程操作,如根据模板创建新的 Excel 文档,编辑现有 Excel 文档以及对 Excel 文档进行转换。
获取 Spire.XLS for Python 请点击:https://www.e-iceblue.cn/Downloads/Spire-XLS-Python.html