Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用GemBox.Document编辑表单控件_C#_Docx_Form Fields_Gembox Document - Fatal编程技术网

C# 使用GemBox.Document编辑表单控件

C# 使用GemBox.Document编辑表单控件,c#,docx,form-fields,gembox-document,C#,Docx,Form Fields,Gembox Document,如何使用GemBox.Document编写或修改Word文档中表单控件的现有值? 我找到了和的例子,但我就是找不到一个写作的例子 我试着用这个: // Input file from 'reading' example. DocumentModel document = DocumentModel.Load("FormFilled.docx"); FormFieldDataCollection formData = document.Content.FormFieldsData; FormFi

如何使用GemBox.Document编写或修改Word文档中表单控件的现有值?
我找到了和的例子,但我就是找不到一个写作的例子

我试着用这个:

// Input file from 'reading' example.
DocumentModel document = DocumentModel.Load("FormFilled.docx");
FormFieldDataCollection formData = document.Content.FormFieldsData;

FormFieldData fullNameData = formData.First(ffd => ffd.Name == "FullName");

// I cannot do this, FormFieldData.Value is read only!
fullNameData.Value = "My Name";

但是
FormFieldData.Value
只有
get
,那么这是可能的还是不可能的?

是的,这是可能的,请尝试以下操作:

DocumentModel document = DocumentModel.Load("FormFilled.docx");
// Get a snapshot of all form fields in the document.
FormFieldDataCollection formData = document.Content.FormFieldsData;

// Edit "FullName" text box field.
FormTextData fullNameData = (FormTextData)formData["FullName"];
fullNameData.Field.ResultInlines.Content.LoadText("Jane Doe");

// Edit "BirthDate" text box field.
FormTextData birthDateData = (FormTextData)formData["BirthDate"];
birthDateData.Field.ResultInlines.Content.LoadText(
    new DateTime(2000, 1, 1).ToString(birthDateData.ValueFormat));

// Edit "Salary" text box field.
FormTextData salaryData = (FormTextData)formData["Salary"];
salaryData.Field.ResultInlines.Content.LoadText(
    5432.1.ToString(salaryData.ValueFormat));

// Uncheck "Married" check box field.
FormCheckBoxData marriedData = (FormCheckBoxData)formData["Married"];
marriedData.Value = false;

// Select "Female" from drop down field, note that "genderData.Items
// contains a list of drop down field's items that you can select.
FormDropDownData genderData = (FormDropDownData)formData["Gender"];
genderData.SelectedItemIndex = 2;

document.Save("FormFilledOutput.docx");
我希望这有帮助

更新:

在更新的GemBox.Document的bug fix版本中,该属性同时具有getter和setter,因此可以通过以下方式简化上述内容:

// Edit "FullName" text box field.
FormTextData fullNameData = (FormTextData)formData["FullName"];
fullNameData.Value = "Jane Doe";

// Edit "BirthDate" text box field.
FormTextData birthDateData = (FormTextData)formData["BirthDate"];
birthDateData.Value = new DateTime(2000, 1, 1);

// Edit "Salary" text box field.
FormTextData salaryData = (FormTextData)formData["Salary"];
salaryData.Value = 5432.1;

您也可以参考。

谢谢Mario,这很有帮助!