将 Excel 文档发送给其他人审阅时,建议打开修订功能以确保记录对工作表或工作簿所做的所有更改。对于 Excel 中已更改的单元格,每个单元格将在其左上角用蓝色三角形突出显示。然后,您可以查看更改并决定是否接受或拒绝修订。本文将演示如何使用Spire.XLS for .NET 以编程方式接受或拒绝 Excel 中的所有修订.
首先,您需要添加 Spire.XLS for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.XLS要接受工作簿中的修订,您首先需要使用 Workbook.HasTrackedChanges 属性确定工作簿是否含有跟踪修订。如果是,则可以使用 WorkBook.AcceptallTrackedChanges() 方法一次接受所有修订。以下是接受 Excel 工作簿中所有修订的步骤。
using Spire.Xls;
namespace AcceptTrackedChanges
{
class Program
{
static void Main(string[] args)
{
//创建一个Workbook对象
Workbook workbook = new Workbook();
//加载示例文档
workbook.LoadFromFile("示例文档.xlsx");
//确认工作簿是否含有跟踪修订
if (workbook.HasTrackedChanges)
{
//接受工作簿中的所有修订
workbook.AcceptAllTrackedChanges();
}
//保存结果文档
workbook.SaveToFile("接受修订.xlsx", FileFormat.Version2013);
}
}
}Imports Spire.Xls
Namespace AcceptTrackedChanges
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'创建一个Workbook对象
Dim workbook As Workbook = New Workbook()
'加载示例文档
workbook.LoadFromFile("示例文档.xlsx")
'确认工作簿是否含有跟踪修订
If workbook.HasTrackedChanges Then
'接受工作簿中的所有修订
workbook.AcceptAllTrackedChanges()
End If
'保存结果文档
workbook.SaveToFile("接受修订.xlsx", FileFormat.Version2013)
End Sub
End Class
End Namespace
如果修订已被确认存在于工作簿中,Spire.XLS for.NET 还提供了 Workbook.RejectAllTrackedChanges() 方法,以一次拒绝所有修订。具体步骤如下。
using Spire.Xls;
namespace AcceptTrackedChanges
{
class Program
{
static void Main(string[] args)
{
//创建一个Workbook对象
Workbook workbook = new Workbook();
//加载示例 Excel 文档
workbook.LoadFromFile("示例文档.xlsx");
//确认工作簿是否含有跟踪修订
if (workbook.HasTrackedChanges)
{
//拒绝所有修订
workbook.RejectAllTrackedChanges();
}
//保存结果文档
workbook.SaveToFile("拒绝修订.xlsx", FileFormat.Version2013);
}
}
}Imports Spire.Xls
Namespace AcceptTrackedChanges
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'创建一个Workbook对象
Dim workbook As Workbook = New Workbook()
'加载示例 Excel 文档
workbook.LoadFromFile("示例文档.xlsx")
'确认工作簿是否含有跟踪修订
If workbook.HasTrackedChanges Then
'拒绝所有修订
workbook.RejectAllTrackedChanges()
End If
'保存结果文档
workbook.SaveToFile("拒绝修订.xlsx", FileFormat.Version2013)
End Sub
End Class
End Namespace
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Presentation 7.12.1已发布。该版本修复了将PPT幻灯片保存为图像后,内容丢失的问题。详情请阅读以下内容。
问题修复:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-NET.html
Spire.PDF for Java 8.12.6 已发布。该版本支持创建标签PDF 文件。本次更新还包含一些性能优化,如:优化了提取图像的耗时以及压缩文档图像时的内存消耗。此外,该版本还修复了许多已知问题。详情请阅读以下内容。
新功能:
//Create a pdf document
PdfDocument doc = new PdfDocument();
//Add page
doc.getPages().add();
//Set tab order
doc.getPages().get(0).setTabOrder(TabOrder.Structure);
//Create PdfTaggedContent
PdfTaggedContent taggedContent = new PdfTaggedContent(doc);
taggedContent.setLanguage("en-US");
taggedContent.setTitle("test");
//Set font
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Times New Roman",Font.PLAIN,12), true);
PdfSolidBrush brush = new PdfSolidBrush(new PdfRGBColor(Color.black));
//Append elements
PdfStructureElement article = taggedContent.getStructureTreeRoot().appendChildElement(PdfStandardStructTypes.Document);
PdfStructureElement paragraph1 = article.appendChildElement(PdfStandardStructTypes.Paragraph);
PdfStructureElement span1 = paragraph1.appendChildElement(PdfStandardStructTypes.Span);
span1.beginMarkedContent(doc.getPages().get(0));
PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Justify);
doc.getPages().get(0).getCanvas().drawString("Spire.PDF for .NET is a professional PDF API applied to creating, writing, editing, handling and reading PDF files.",
font, brush, new Rectangle(40, 0, 480, 80), format);
span1.endMarkedContent(doc.getPages().get(0));
PdfStructureElement paragraph2 = article.appendChildElement(PdfStandardStructTypes.Paragraph);
paragraph2.beginMarkedContent(doc.getPages().get(0));
doc.getPages().get(0).getCanvas().drawString("Spire.PDF for .NET can be applied to easily convert Text, Image, SVG, HTML to PDF and convert PDF to Excel with C#/VB.NET in high quality.",
font, brush, new Rectangle(40, 80, 480, 60), format);
paragraph2.endMarkedContent(doc.getPages().get(0));
PdfStructureElement figure1 = article.appendChildElement(PdfStandardStructTypes.Figure);
//Set Alternate text
figure1.setAlt("replacement text1");
figure1.beginMarkedContent(doc.getPages().get(0), null);
PdfImage image = PdfImage.fromFile("E-logo.png");
Dimension2D dimension2D = new Dimension();
dimension2D.setSize( 100,100);
doc.getPages().get(0).getCanvas().drawImage(image, new Point2D.Float(40, 200),dimension2D);
figure1.endMarkedContent(doc.getPages().get(0));
PdfStructureElement figure2 = article.appendChildElement(PdfStandardStructTypes.Figure);
//Set Alternate text
figure2.setAlt( "replacement text2");
figure2.beginMarkedContent(doc.getPages().get(0), null);
doc.getPages().get(0).getCanvas().drawRectangle(PdfPens.getBlack(), new Rectangle(300, 200, 100, 100));
figure2.endMarkedContent(doc.getPages().get(0));
//Save to file
String result = "CreateTaggedFile_result.pdf";
doc.saveToFile(result);
doc.close();问题修复:
Spire.Doc for Java 10.12.4 已发布。该版本增强了 Word 到 PDF 的转换。详情请阅读以下内容。
问题修复:
有时,您可能需要在 Excel 中对多个形状执行特定操作,例如添加样式、调整大小或移动它们。对形状进行分组可以帮助您更轻松、更高效地完成此任务。对形状进行分组后,它们将被视为单个实体并且可以同时进行操作。在本文中,您将学习如何使用 Spire.XLS for .NET 在 C# 和 VB.NET 中以编程方式对 Excel 中的形状进行分组或取消分组。
首先,您需要添加 Spire.XLS for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.XLS要对 Excel 工作表中的某些形状进行分组,您需要使用 Worksheet.GroupShapeCollection 属性返回一个 GroupShapeCollection 对象,然后调用 GroupShapeCollection.Group() 方法。详细步骤如下:
using Spire.Xls;
using Spire.Xls.Core;
using Spire.Xls.Core.MergeSpreadsheet.Collections;
using System.Drawing;
namespace GroupShapes
{
class Program
{
static void Main(string[] args)
{
//初始化Workbook类的实例
Workbook workbook = new Workbook();
//获取第一个工作表
Worksheet worksheet = workbook.Worksheets[0];
//添加多个形状
IPrstGeomShape shape1 = worksheet.PrstGeomShapes.AddPrstGeomShape(3, 3, 65, 50, PrstGeomShapeType.RoundRect);
shape1.Fill.FillType = ShapeFillType.SolidColor;
shape1.Fill.ForeColor = Color.Yellow;
shape1.Line.Weight = 0.1;
IPrstGeomShape shape2 = worksheet.PrstGeomShapes.AddPrstGeomShape(7, 3, 65, 50, PrstGeomShapeType.Ribbon);
shape2.Fill.FillType = ShapeFillType.SolidColor;
shape2.Fill.ForeColor = Color.Purple;
shape2.Line.Weight = 0.1;
IPrstGeomShape shape3 = worksheet.PrstGeomShapes.AddPrstGeomShape(3, 5, 65, 50, PrstGeomShapeType.Cloud);
shape3.Fill.FillType = ShapeFillType.SolidColor;
shape3.Fill.ForeColor = Color.LightGreen;
shape3.Line.Weight = 0.1;
IPrstGeomShape shape4 = worksheet.PrstGeomShapes.AddPrstGeomShape(7, 5, 65, 50, PrstGeomShapeType.Ellipse);
shape4.Fill.FillType = ShapeFillType.SolidColor;
shape4.Fill.ForeColor = Color.LightSkyBlue;
shape4.Line.Weight = 0.1;
//对形状进行分组
GroupShapeCollection groupShapeCollection = worksheet.GroupShapeCollection;
groupShapeCollection.Group(new IShape[] { shape1, shape2, shape3, shape4 });
//保存结果文档
workbook.SaveToFile("GroupShapes.xlsx", ExcelVersion.Version2013);
}
}
}Imports Spire.Xls
Imports Spire.Xls.Core
Imports Spire.Xls.Core.MergeSpreadsheet.Collections
Imports System.Drawing
Namespace GroupShapes
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'初始化Workbook类的实例
Dim workbook As Workbook = New Workbook()
'获取第一个工作表
Dim worksheet As Worksheet = workbook.Worksheets(0)
'添加多个形状
Dim shape1 As IPrstGeomShape = worksheet.PrstGeomShapes.AddPrstGeomShape(3, 3, 65, 50, PrstGeomShapeType.RoundRect)
shape1.Fill.FillType = ShapeFillType.SolidColor
shape1.Fill.ForeColor = Color.Yellow
shape1.Line.Weight = 0.1
Dim shape2 As IPrstGeomShape = worksheet.PrstGeomShapes.AddPrstGeomShape(7, 3, 65, 50, PrstGeomShapeType.Ribbon)
shape2.Fill.FillType = ShapeFillType.SolidColor
shape2.Fill.ForeColor = Color.Purple
shape2.Line.Weight = 0.1
Dim shape3 As IPrstGeomShape = worksheet.PrstGeomShapes.AddPrstGeomShape(3, 5, 65, 50, PrstGeomShapeType.Cloud)
shape3.Fill.FillType = ShapeFillType.SolidColor
shape3.Fill.ForeColor = Color.LightGreen
shape3.Line.Weight = 0.1
Dim shape4 As IPrstGeomShape = worksheet.PrstGeomShapes.AddPrstGeomShape(7, 5, 65, 50, PrstGeomShapeType.Ellipse)
shape4.Fill.FillType = ShapeFillType.SolidColor
shape4.Fill.ForeColor = Color.LightSkyBlue
shape4.Line.Weight = 0.1
'对形状进行分组
Dim groupShapeCollection As GroupShapeCollection = worksheet.GroupShapeCollection
groupShapeCollection.Group(New IShape() {shape1, shape2, shape3, shape4})
'保存结果文档
workbook.SaveToFile("GroupShapes.xlsx", ExcelVersion.Version2013)
End Sub
End Class
End Namespace
如果要取消 Excel 工作表中已分组的形状,您可以使用 GroupShapeCollection. UnGroupAll() 方法。取消形状分组后,则可以单独操作它们。详细步骤如下:
using Spire.Xls;
using Spire.Xls.Core.MergeSpreadsheet.Collections;
namespace UngroupShapes
{
class Program
{
static void Main(string[] args)
{
//初始化Workbook类的实例
Workbook workbook = new Workbook();
workbook.LoadFromFile("GroupShapes.xlsx");
//获取特定工作表
Worksheet worksheet = workbook.Worksheets[0];
//取消分组工作表中的分组形状
GroupShapeCollection groupShapeCollection = worksheet.GroupShapeCollection;
groupShapeCollection.UnGroupAll();
//保存结果文档
workbook.SaveToFile("UnGroupShapes.xlsx", ExcelVersion.Version2013);
}
}
}Imports Spire.Xls
Imports Spire.Xls.Core.MergeSpreadsheet.Collections
Namespace UngroupShapes
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'初始化Workbook类的实例
Dim workbook As Workbook = New Workbook()
workbook.LoadFromFile("GroupShapes.xlsx")
'获取特定工作表
Dim worksheet As Worksheet = workbook.Worksheets(0)
'取消分组工作表中的分组形状
Dim groupShapeCollection As GroupShapeCollection = worksheet.GroupShapeCollection
groupShapeCollection.UnGroupAll()
'保存结果文档
workbook.SaveToFile("UnGroupShapes.xlsx", ExcelVersion.Version2013)
End Sub
End Class
End Namespace
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.PDF 8.12.5 已发布。该版本新增支持设置表单域的可见与隐藏属性、添加自定义的元数据以及给 PDF 文档的元数据添加新的命名空间。本次更新还增强了 PDF 到 DOCX 和图片的转换。此外,许多问题也在本次更新中被成功修复,如绘制水印后查找文本失败的问题。详情请阅读以下内容。
新功能:
Spire.Pdf.Fields.PdfField field = formWidget.FieldsWidget.List[0] as Spire.Pdf.Fields.PdfField;
//field.AnnotationFlags = Spire.Pdf.Annotations.PdfAnnotationFlags.Default; // Setting visibility
field.AnnotationFlags = Spire.Pdf.Annotations.PdfAnnotationFlags.Hidden; // Setting hiddenusing(PdfDocument doc = new PdfDocument("1.pdf"))
{
using(Stream stream = new FileStream('1.xml',FileMode.Open))
{
doc.Metadata = PdfXmlMetadata.Parse(stream);
}
doc.SaveToFile('result.pdf');
}PdfXmlMetadata.RegisterNamespace("http://myRandomNamespace", "zf");
using(PdfDocument doc = new PdfDocument("1.pdf"))
{
doc.Metadata.SetPropertyString("http://myRandomNamespace", "test1","my test");
doc.SaveToFile('result.pdf');
}
PdfXmlMetadata.ResetNamespaces();问题修复:
Spire.Office for Java 7.12.2 已发布。本次更新带来了一些新功能,如:Spire.PDF for Java支持释放 PdfTrueTypeFont 对象;Spire.Doc for Java增强了 Word 到 PDF 和图片以及 HTML 到 Word 的转换;Spire.XLS for Java 增强了Excel 到 PDF的转换;Spire.Presentation for Java增强了 PPT 到 SVG的转换。此外,该版本还成功修复了许多已知问题。详情请阅读以下内容。
获取 Spire.Office for Java 7.12.2请点击:https://www.e-iceblue.cn/Downloads/Spire-Office-JAVA.html
新功能:
pdfTrueTypeFont.dispose();问题修复:
问题修复:
问题修复:
问题修复:
Spire.Doc for Java 10.12.2 已发布。该版本增强了 Word 到 PDF 和图片以及 HTML 到 Word 的转换。此外,本次更新还修复了许多已知问题,如合并文档后字号和段间距发生改变的问题。详情请阅读以下内容。
问题修复:
Spire.Presentation for Java 7.12.0 已发布。本次更新增强了 PPT 到 SVG的转换。同时,该版本还修复了一些已知问题,如修复了加载PPT文档程序抛异常 “Index must be >= 0 and <= Count” 的问题。详情请阅读以下内容。
问题修复:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-JAVA.html
Spire.Office 7.12.0 已发布。在本次更新中,Spire.Doc 支持为形状设置填充色透明度;Spire.PDF 支持压缩 PDF 文档及转换 PDF 为 PPT;Spire.XLS 支持多种新函数及 "SHA-512" 加密方式。此外,本次更新还成功修复了大量已知问题。详情请阅读以下内容。
该版本涵盖了最新版的 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
新功能:
PdfCompressor compressor = new PdfCompressor(fileName);
compressor.CompressToFIle(outputName);PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile(inputFile);
pdf.SaveToFile(outputFile, FileFormat.PPTX)PdfCompressor compressor = new PdfCompressor(fileName);
compressor.CompressToFIle(outputName);PdfDocument doc = new PdfDocument();
doc.LoadFromFile(input);
PdfPageBase page = doc.Pages[0];
PdfTextReplacer replacer = new PdfTextReplacer(page);
PdfTextReplaceOptions option = new PdfTextReplaceOptions();
options.ReplaceType = ReplaceActionType.IgnoreCase;
replacer.Options = option;
replacer.ReplaceText("cash", "999");
doc.SaveToFile("output.pdf", FileFormat.PDF);问题修复:
新功能:
Paragraph paragraph = section.AddParagraph();
Spire.Doc.Fields.TextBox textbox1 = paragraph.AppendTextBox(100, 50);
textbox1.Format.FillColor = Color.Red;
textbox1.FillTransparency = 0.45;问题修复:
新功能:
Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Formula = "CEILING.MATH(-2.78,5,-1)";
workbook.CalculateAllValue();
workbook.SaveToFile("1.xlsx",ExcelVersion.Version2016);Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Formula = "BITOR(23,10)";
workbook.CalculateAllValue();
workbook.SaveToFile("1.xlsx",ExcelVersion.Version2016);Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Formula = "BITAND(23,10)";
workbook.CalculateAllValue();
workbook.SaveToFile("1.xlsx",ExcelVersion.Version2016);Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Formula = "BITLSHIFT(23,2)";
workbook.CalculateAllValue();
workbook.SaveToFile("1.xlsx",ExcelVersion.Version2016);Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Formula = "BITRSHIFT(23,2)";
workbook.CalculateAllValue();
workbook.SaveToFile("1.xlsx",ExcelVersion.Version2016);Workbook workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];
IPrstGeomShape shape1 = worksheet.PrstGeomShapes.AddPrstGeomShape(1, 3, 50, 50, PrstGeomShapeType.RoundRect);
IPrstGeomShape shape2 = worksheet.PrstGeomShapes.AddPrstGeomShape(5, 3, 50, 50, PrstGeomShapeType.Triangle);
GroupShapeCollection groupShapeCollection = worksheet.GroupShapeCollection;
groupShapeCollection.Group(new Spire.Xls.Core.IShape[] { shape1,shape2});
workbook.SaveToFile("1.xlsx",ExcelVersion.Version2013);xlsPivotTable.Options.ReportLayout = PivotTableLayoutType.Tabular;问题修复:
问题修复:
问题修复: