DocIO ที่จำเป็น
ไลบรารี .NET สามารถอ่านและเขียนไฟล์ Microsoft Word ได้ คอมโพเนนต์นี้เป็นโมเดลออบเจ็กต์ คล้ายกับไลบรารีคลาส Microsoft Office COM ไม่ได้ใช้ COM interop และเขียนด้วยภาษา C# หากไม่ได้ติดตั้ง Microsoft Word บนระบบ คุณสามารถพิจารณาส่วนประกอบนี้ได้
สร้างเอกสาร MS Word ใหม่: รองรับการสร้างเอกสาร MS Word ที่มีข้อความ รูปภาพ แผนภูมิ หน้า และส่วนท้าย
การจัดรูปแบบเอกสาร: รองรับการจัดรูปแบบเป็นรายงาน MS Word สากล
การสร้างเอกสารขึ้นอยู่กับเทมเพลต: หากต้องการสร้างเอกสารตามเทมเพลต คุณสามารถใช้ MS Word GUI เพื่อออกแบบรายงานเอกสาร จากนั้นใช้ DocIO เพื่อกรอกข้อมูลลงในไฟล์เทมเพลตแบบไดนามิก
คุณสมบัติเอกสาร: อ่านและเขียนการตั้งค่าคุณสมบัติของเอกสาร Word
การแปลง: รองรับการแปลงเอกสาร MS Word เป็น PDF โดยใช้ Essential PDF
คุณสมบัติขั้นสูง: รองรับการคัดลอกและรวมเอกสาร MS Word หลายรายการเป็นเอกสารเดียว
แปลง HTML เป็นคำ
ไบต์สาธารณะแบบคงที่ [] ConvertHtmlToDoc (สตริง html)
-
เอกสาร var = WordDocument ใหม่ ();
ส่วน IWSection = document.AddSection();
IWParagraph พารา = ส่วน AddParagraph();
สตริง errorMessage = "";
bool valid =section.Body.IsValidXHTML(html, XHTMLValidationType.Strict, ออก errorMessage);
ถ้า (!ถูกต้อง)
โยน InvalidCastException ใหม่ (errorMessage + "<hr>" + html);
document.XHTMLValidateOption = XHTMLValidationType.Strict;
ส่วน Body.InsertXHTML(html);
var outMem = MemoryStream ใหม่ ();
document.Save(outMem, FormatType.Doc);
outMem.Seek(0, SeekOrigin.Begin);
เนื้อหา var = ไบต์ใหม่ [outMem.Length];
outMem.Read (เนื้อหา, 0, เนื้อหาความยาว);
outMem.ทิ้ง();
เอกสาร.ปิด();
ส่งคืนเนื้อหา
-
แทนที่ข้อความที่ระบุเมื่อสร้าง Word
/// <สรุป>
/// แทนที่ข้อความที่ระบุเมื่อสร้าง Word
/// </สรุป>
/// <param name="templatePath"></param>
/// <ชื่อพารามิเตอร์ = "ชื่อไฟล์" ></ พารามิเตอร์>
/// <param name="replaysDictionary"></param>
โมฆะคงที่สาธารณะแทนที่DocContent (สตริง templateFileName, สตริง newFileName,
พจนานุกรม<string, string> replaysDictionary)
-
เอกสาร IWordDocument = WordDocument ใหม่ ();
document.Open(templateFileName, FormatType.Doc);
foreach (var rd ใน replaysDictionary)
-
ถ้า (string.IsNullOrEmpty(document.GetText())) ดำเนินการต่อ;
document.Replace(rd.Key, rd.Value, false, false);
ในขณะที่ (document.GetText().IndexOf(rd.Key) != -1)
document.Replace(rd.Key, rd.Value, false, false);
-
document.Save(newFileName, FormatType.Doc);
-
รหัสผ่านป้องกันเอกสาร
SetDocProtect สตรีมสาธารณะแบบคงที่ (ไบต์ [] docContent, คีย์สตริง)
-
var mem = MemoryStream ใหม่ (docContent);
mem.Seek(0, SeekOrigin.Begin);
เอกสาร IWordDocument = WordDocument ใหม่ (mem, FormatType.Automatic);
document.Protect(ProtectionType.AllowOnlyFormFields, คีย์);
var outMem = MemoryStream ใหม่ ();
document.Save(outMem, FormatType.Doc);
outMem.Seek(0, SeekOrigin.Begin);
กลับออกMem;
-
สร้างตารางที่ตำแหน่งบุ๊กมาร์ก
IWTable ReplacementTable แบบคงที่สาธารณะ (เอกสาร WordDocument, สตริง bookmarkName, ข้อมูล DataTable, สตริง mergeColName, รายการ <List <string>> mutilTableCaption)
-
ถ้า (เอกสาร == null) โยน ArgumentNullException ใหม่ ("document");
ถ้า (bookmarkName == null) โยน ArgumentNullException ใหม่ ("bookmarkName");
ถ้า (data == null) โยน ArgumentNullException ใหม่ ("data");
ถ้า (data.Columns.Count < 1) โยน ArgumentNullException ใหม่ ("data");
int CaptionCount = mutilTableCaption != null && mutilTableCaption.Count > 0 ? mutilTableCaption.Count : 1;
ตาราง WTable = WTable ใหม่ (เอกสาร จริง);
table.ResetCells(data.Rows.Count + คำบรรยายนับ, data.Columns.Count);
สำหรับ (var colCount = 0; colCount < CaptionCount; colCount++)
-
สำหรับ (var col = 0; col < data.Columns.Count; col++)
-
var ย่อหน้า = table.Rows[colCount].Cells[col].AddParagraph();
คำอธิบาย var = data.Columns[col].ColumnName;
ถ้า (mutilTableCaption != null && mutilTableCaption.Count > 0)
คำอธิบายภาพ = mutilTableCaption [colCount] [col];
ข้อความ var = ย่อหน้าผนวกข้อความ (คำบรรยายภาพ);
Paragraph.ParagraphFormat.HorizontalAlignment = Syncfusion.DocIO.DLS.HorizontalAlignment.Center;
text.CharacterFormat.FontName = "宋体";
text.CharacterFormat.Bold = เท็จ;
text.CharacterFormat.FontSize = 10.5f;
-
-
สำหรับ (var row = CaptionCount; row <= data.Rows.Count; row++)
สำหรับ (var col = 0; col < data.Columns.Count; col++)
-
var ย่อหน้า = table.Rows[row].Cells[col].AddParagraph();
var text = ย่อหน้า.AppendText(data.Rows[row - CaptionCount][col] + "");
text.CharacterFormat.FontName = "宋体";
text.CharacterFormat.FontSize = 9f;
วาลคู่ = 0;
ถ้า (double.TryParse (text.Text, ออก val))
-
text.Text = Math.Round(val, 2) + "";
//จัดชิดขวา
Paragraph.ParagraphFormat.HorizontalAlignment = Syncfusion.DocIO.DLS.HorizontalAlignment.Right;
table.Rows[row].Cells[col].CellFormat.VerticalAlignment = VerticalAlignment.Middle;
table.Rows[row].Cells[col].CellFormat.TextWrap = false;
-
-
//ผสานเซลล์ ผสานลง
ถ้า (!string.IsNullOrEmpty(mergeColName))
สำหรับ (var row = CaptionCount; row < table.Rows.Count; row++)
-
var cell = table.Rows[row].Cells[data.Columns[mergeColName].Ordinal];
cell.CellFormat.VerticalMerge = CellMerge.Start;
var text = data.Rows[แถว - CaptionCount][mergeColName] + "";
ถ้า (แถว > คำบรรยายนับ)
-
var PriorCell = table.Rows[row - CaptionCount].Cells[data.Columns[mergeColName].Ordinal];
var findText = data.Rows[แถว - CaptionCount - 1][mergeColName] + "";
ถ้า (text.Equals (findText))
cell.CellFormat.VerticalMerge = CellMerge.ดำเนินการต่อ;
-
-
BookmarksNavigator bk = ใหม่ BookmarksNavigator(เอกสาร);
bk.MoveToBookmark(ชื่อบุ๊คมาร์ค);
TextBodyPart body= bk.GetBookmarkContent();
bk.DeleteBookmarkContent(จริง);
bk.InsertTable(ตาราง);
โต๊ะขากลับ;
-
-