Skip to content

Commit 5069ba7

Browse files
Added sample to delete specific content from the Word document
1 parent 99a31d7 commit 5069ba7

File tree

5 files changed

+88
-0
lines changed

5 files changed

+88
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.12.35309.182
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Delete-specific-content", "Delete-specific-content\Delete-specific-content.csproj", "{E52F6469-4EF7-4D91-8AD6-9A970E3CF704}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
Release|Any CPU = Release|Any CPU
12+
EndGlobalSection
13+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
14+
{E52F6469-4EF7-4D91-8AD6-9A970E3CF704}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15+
{E52F6469-4EF7-4D91-8AD6-9A970E3CF704}.Debug|Any CPU.Build.0 = Debug|Any CPU
16+
{E52F6469-4EF7-4D91-8AD6-9A970E3CF704}.Release|Any CPU.ActiveCfg = Release|Any CPU
17+
{E52F6469-4EF7-4D91-8AD6-9A970E3CF704}.Release|Any CPU.Build.0 = Release|Any CPU
18+
EndGlobalSection
19+
GlobalSection(SolutionProperties) = preSolution
20+
HideSolutionNode = FALSE
21+
EndGlobalSection
22+
GlobalSection(ExtensibilityGlobals) = postSolution
23+
SolutionGuid = {D4C8D559-B3B9-42B9-B796-88F660D9E001}
24+
EndGlobalSection
25+
EndGlobal
Binary file not shown.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>net8.0</TargetFramework>
6+
<RootNamespace>Delete_specific_content</RootNamespace>
7+
<ImplicitUsings>enable</ImplicitUsings>
8+
<Nullable>enable</Nullable>
9+
</PropertyGroup>
10+
11+
<ItemGroup>
12+
<PackageReference Include="Syncfusion.DocIO.NET" Version="*" />
13+
</ItemGroup>
14+
15+
<ItemGroup>
16+
<None Update="Data\Template.docx">
17+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
18+
</None>
19+
<None Update="Output\.gitkeep">
20+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
21+
</None>
22+
</ItemGroup>
23+
24+
</Project>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
using Syncfusion.DocIO.DLS;
2+
using Syncfusion.DocIO;
3+
4+
//Register Syncfusion license
5+
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("Mgo+DSMBMAY9C3t2UlhhQlNHfV5DQmBWfFN0QXNYfVRwdF9GYEwgOX1dQl9nSXZTc0VlWndfcXNSQWc=");
6+
7+
using (FileStream inputFileStream = new FileStream(Path.GetFullPath(@"Data/Template.docx"), FileMode.Open, FileAccess.Read))
8+
{
9+
// Opens the template Word docuemnt.
10+
using (WordDocument document = new WordDocument(inputFileStream, FormatType.Docx))
11+
{
12+
// Deletes content from the 2nd to the 6th index in the text body of the Word document.
13+
DeleteContentInWordDocument(2, 6, document);
14+
using (FileStream outputFileStream = new FileStream(Path.GetFullPath(@"Output/Result.docx"), FileMode.Create, FileAccess.ReadWrite))
15+
{
16+
// Saves the modified Word document to the output file stream.
17+
document.Save(outputFileStream, FormatType.Docx);
18+
}
19+
}
20+
}
21+
22+
/// <summary>
23+
/// Deletes content from the specified start index to the end index within the text body of the Word document.
24+
/// </summary>
25+
void DeleteContentInWordDocument(int startIndex, int endIndex, WordDocument document)
26+
{
27+
// Retrieves the text body of the last section in the Word document.
28+
WTextBody body = document.LastSection.Body;
29+
// Ensures the start and end indices are within valid bounds.
30+
if (startIndex >= 0 && endIndex < body.ChildEntities.Count && startIndex <= endIndex)
31+
{
32+
// Removes items from endIndex to startIndex in reverse order to prevent index shifting issues.
33+
for (int index = endIndex; index >= startIndex; index--)
34+
{
35+
body.ChildEntities.RemoveAt(index);
36+
}
37+
}
38+
}

0 commit comments

Comments
 (0)