使用 GemBox.Document 编辑表单控件
Edit form controls with GemBox.Document
我们如何使用 GemBox.Document 编写或修改 Word 文档中表单控件的现有值?
我找到了 creating and reading 的示例,但我找不到用于写作的示例...
我试过用这个:
// 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 的错误修复版本之一中,FormTextData.Value 属性 同时具有 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;
也可以参考this example.
我们如何使用 GemBox.Document 编写或修改 Word 文档中表单控件的现有值?
我找到了 creating and reading 的示例,但我找不到用于写作的示例...
我试过用这个:
// 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 的错误修复版本之一中,FormTextData.Value 属性 同时具有 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;
也可以参考this example.