مستند أساسي
مكتبة .NET قادرة على قراءة وكتابة ملفات Microsoft Word. هذا المكون هو نموذج كائن، مشابه لمكتبة فئة Microsoft Office COM، ولا يستخدم إمكانية التشغيل المتداخل لـ COM وهو مكتوب بلغة C#. إذا لم يتم تثبيت Microsoft Word على النظام، فيمكنك التفكير في هذا المكون.
إنشاء مستندات MS Word جديدة: يدعم إنشاء مستندات MS Word تحتوي على نصوص وصور ومخططات وصفحات وتذييلات.
تنسيق المستندات: يدعم التنسيق في تقارير MS Word العالمية.
يعتمد إنشاء المستندات على القوالب: لإنشاء مستندات بناءً على القوالب، يمكنك استخدام MS Word GUI لتصميم تقارير المستندات، ثم استخدام DocIO لملء البيانات ديناميكيًا في ملفات القالب.
خصائص المستند: قراءة وكتابة إعدادات الخصائص لمستندات Word.
التحويل: يدعم تحويل مستندات MS Word إلى PDF باستخدام ملف PDF الأساسي.
الميزات المتقدمة: يدعم نسخ ودمج مستندات MS Word المتعددة في مستند واحد.
تحويل HTML إلى كلمة
البايت الثابت العام[] ConvertHtmlToDoc(سلسلة html)
{
مستند var = new WordDocument();
قسم IWSection = document.AddSection();
IWParagraph para = section.AddParagraph();
سلسلة ErrorMessage = "";
منطقي صالح = section.Body.IsValidXHTML(html, XHTMLValidationType.Strict, out errorMessage);
إذا (! صالح)
طرح InvalidCastException(errorMessage + "<hr>" + html);
document.XHTMLValidateOption = XHTMLValidationType.Strict;
section.Body.InsertXHTML(html);
var outMem = new MemoryStream();
document.Save(outMem, FormatType.Doc);
outMem.Seek(0, SeekOrigin.Begin);
محتوى var = بايت جديد[outMem.Length];
outMem.Read(content, 0, content.Length);
outMem.Dispose();
document.Close();
عودة المحتوى؛
}
استبدال النص المحدد عند إنشاء Word
/// <الملخص>
/// استبدل النص المحدد عند إنشاء Word
/// </الملخص>
/// <param name="templatePath"></param>
/// <param name="FileName"></param>
/// <param name="replaysDictionary"></param>
ReplaceDocContent باطلة عامة ثابتة (سلسلة templateFileName، سلسلة newFileName،
قاموس <سلسلة، سلسلة> إعادات القاموس)
{
IWordDocument document = new WordDocument();
document.Open(templateFileName, FormatType.Doc);
foreach (var rd في الإعادة القاموس)
{
إذا استمر (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);
}
حماية كلمة المرور للمستندات
Stream SetDocProtect العام الثابت (بايت [] docContent، مفتاح السلسلة)
{
var mem = new MemoryStream(docContent);
mem.Seek(0, SeekOrigin.Begin);
IWordDocument document = new WordDocument(mem, FormatType.Automatic);
document.Protect(ProtectionType.AllowOnlyFormFields, key);
var outMem = new MemoryStream();
document.Save(outMem, FormatType.Doc);
outMem.Seek(0, SeekOrigin.Begin);
العودة خارجMem؛
}
قم بإنشاء جدول في موقع الإشارة المرجعية
IWTable ReplaceTable ثابت عام (مستند WordDocument، اسم الإشارة المرجعية للسلسلة، بيانات DataTable، سلسلة mergeColName، List<List<string>> mutilTableCaption)
{
if (document == null) throw new ArgumentNullException("document");
if (bookmarkName == null) throw new ArgumentNullException("bookmarkName");
إذا (بيانات == خالية) قم برمي ArgumentNullException("data");
إذا (data.Columns.Count < 1) رمي ArgumentNullException("data") الجديد("data");
int captionCount = mutilTableCaption != null && mutilTableCaption.Count > 0 ? mutilTableCaption.Count : 1;
جدول WTable = جديد WTable(document, true);
table.ResetCells(data.Rows.Count + captionCount, data.Columns.Count);
لـ (var colCount = 0; colCount < captionCount; colCount++)
{
لـ (var col = 0; col < data.Columns.Count; col++)
{
var Para = table.Rows[colCount].Cells[col].AddParagraph();
var caption = data.Columns[col].ColumnName;
إذا (mutilTableCaption != null && mutilTableCaption.Count > 0)
تسمية توضيحية = mutilTableCaption[colCount][col];
فار النص = الفقرة.AppendText(caption);
ParagraphFormat.HorizontalAlignment = Syncfusion.DocIO.DLS.HorizontalAlignment.Center;
text.CharacterFormat.FontName = "宋体";
text.CharacterFormat.Bold = false;
text.CharacterFormat.FontSize = 10.5f;
}
}
لـ (var الصف = captionCount؛ الصف <= data.Rows.Count؛ الصف ++)
لـ (var col = 0; col < data.Columns.Count; col++)
{
var Para = table.Rows[row].Cells[col].AddParagraph();
var text = Para.AppendText(data.Rows[row - captionCount][col] + "");
text.CharacterFormat.FontName = "宋体";
text.CharacterFormat.FontSize = 9f;
قيمة مزدوجة = 0؛
إذا (double.TryParse(text.Text, out val))
{
text.Text = Math.Round(val, 2) + "";
//محاذاة لليمين
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 الصف = captionCount؛ الصف < table.Rows.Count؛ الصف ++)
{
خلية فار = table.Rows[row].Cells[data.Columns[mergeColName].Ordinal];
cell.CellFormat.VerticalMerge = CellMerge.Start;
var text = data.Rows[row - captionCount][mergeColName] + "";
إذا (صف> عدد التسميات التوضيحية)
{
var preCell = table.Rows[row - captionCount].Cells[data.Columns[mergeColName].Ordinal];
var findText = data.Rows[row - captionCount - 1][mergeColName] + "";
إذا (نص. يساوي (findText))
cell.CellFormat.VerticalMerge = CellMerge.Continue;
}
}
BookmarksNavigator bk = new BookmarksNavigator(document);
bk.MoveToBookmark(bookmarkName);
TextBodyPart body= bk.GetBookmarkContent();
bk.DeleteBookmarkContent(true);
bk.InsertTable(table);
طاولة العودة
}
-