Javascript 如何添加多行以及如何使用c#替换spire文档中的值?
我有文档文件,我想替换表中的字符串值,并在文档文件中添加行并将其转换为PDF。 例子。我在数据表中有5条记录,然后用现有spire文档中的记录添加5行并替换值。 请检查文档文件的附加照片。Javascript 如何添加多行以及如何使用c#替换spire文档中的值?,javascript,c#,asp.net-mvc,asp.net-core,c#-4.0,Javascript,C#,Asp.net Mvc,Asp.net Core,C# 4.0,我有文档文件,我想替换表中的字符串值,并在文档文件中添加行并将其转换为PDF。 例子。我在数据表中有5条记录,然后用现有spire文档中的记录添加5行并替换值。 请检查文档文件的附加照片。 我建议您使用更简单的邮件合并 首先,通过插入合并字段修改模板word文档,如下所示: 其次,请参阅下面的示例代码,将datatable中的数据合并到word表中: using System.Collections; using System.Collections.Generic; using System
我建议您使用更简单的邮件合并 首先,通过插入合并字段修改模板word文档,如下所示: 其次,请参阅下面的示例代码,将datatable中的数据合并到word表中:
using System.Collections;
using System.Collections.Generic;
using System.Data;
using Spire.Doc;
namespace Sample
{
class Program
{
static void Main(string[] args)
{
Document document = new Document();
//load word document
document.LoadFromFile("template.docx");
//convert datatable to list
DataTable dt = GetDataTable();
DataSet dsTmp = new DataSet();
dsTmp.Tables.Add(dt);
List<DictionaryEntry> list = new List<DictionaryEntry>();
DictionaryEntry dictionaryEntry = new DictionaryEntry("Table", string.Empty);
list.Add(dictionaryEntry);
//merge data in list to word table
document.MailMerge.ExecuteWidthNestedRegion(dsTmp, list);
//save the result document to pdf
//document.SaveToFile("Result.docx", FileFormat.Docx2013);
document.SaveToFile("Result.pdf", FileFormat.PDF);
}
public static DataTable GetDataTable()
{
DataTable dt = new DataTable();
dt.TableName = "Table";
dt.Columns.Add("srno", typeof(string));
dt.Columns.Add("particulars", typeof(int));
dt.Columns.Add("finish", typeof(int));
dt.Columns.Add("thickness", typeof(string));
dt.Columns.Add("size", typeof(string));
dt.Columns.Add("chargeable", typeof(int));
dt.Columns.Add("unit", typeof(int));
dt.Columns.Add("rateUnit", typeof(string));
dt.Columns.Add("total", typeof(string));
DataRow dr1 = dt.NewRow();
dr1["srno"] = "A";
dr1["particulars"] = "20";
dr1["finish"] = "1";
dr1["thickness"] = "$1000";
dr1["size"] = "A";
dr1["chargeable"] = "20";
dr1["unit"] = "1";
dr1["rateUnit"] = "$1000";
dr1["total"] = "A";
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["srno"] = "B";
dr2["particulars"] = "20";
dr2["finish"] = "1";
dr2["thickness"] = "$1500";
dr2["size"] = "B";
dr2["chargeable"] = "20";
dr2["unit"] = "1";
dr2["rateUnit"] = "$1500";
dr2["total"] = "B";
dt.Rows.Add(dr2);
DataRow dr3 = dt.NewRow();
dr3["srno"] = "C";
dr3["particulars"] = "20";
dr3["finish"] = "1";
dr3["thickness"] = "$1500";
dr3["size"] = "C";
dr3["chargeable"] = "20";
dr3["unit"] = "1";
dr3["rateUnit"] = "$1500";
dr3["total"] = "C";
dt.Rows.Add(dr3);
return dt;
}
}
}
使用系统集合;
使用System.Collections.Generic;
使用系统数据;
使用Spire.Doc;
名称空间示例
{
班级计划
{
静态void Main(字符串[]参数)
{
文档=新文档();
//加载word文档
document.LoadFromFile(“template.docx”);
//将数据表转换为列表
DataTable dt=GetDataTable();
数据集dsTmp=新数据集();
dsTmp.Tables.Add(dt);
列表=新列表();
DictionaryEntry DictionaryEntry=新DictionaryEntry(“表”,string.Empty);
列表。添加(字典输入);
//将列表中的数据合并到word表
document.MailMerge.ExecuteWidthNestedRegion(dsTmp,列表);
//将结果文档保存为pdf
//document.SaveToFile(“Result.docx”,FileFormat.Docx2013);
保存文件(“Result.pdf”,FileFormat.pdf);
}
公共静态数据表GetDataTable()
{
DataTable dt=新的DataTable();
dt.TableName=“Table”;
dt.Columns.Add(“srno”,typeof(string));
dt.列。添加(“详情”,类型(int));
添加(“完成”,类型(int));
添加(“厚度”,类型(字符串));
添加(“大小”,类型(字符串));
添加(“可收费”,类型(int));
添加(“单位”,类型(int));
添加(“比率单位”,类型(字符串));
添加(“总计”,类型(字符串));
DataRow dr1=dt.NewRow();
dr1[“srno”]=“A”;
dr1[“详情”]=“20”;
dr1[“完成”]=“1”;
dr1[“厚度”]=“1000美元”;
dr1[“大小”]=“A”;
dr1[“可收费”]=“20”;
dr1[“单位”]=“1”;
dr1[“费率单位”]=“1000美元”;
dr1[“总计”]=“A”;
dt.行。添加(dr1);
DataRow dr2=dt.NewRow();
dr2[“srno”]=“B”;
dr2[“详情”]=“20”;
dr2[“完成”]=“1”;
dr2[“厚度”]=“1500美元”;
dr2[“大小”]=“B”;
dr2[“可收费”]=“20”;
dr2[“单位”]=“1”;
dr2[“费率单位”]=“1500美元”;
dr2[“总计”]=“B”;
dt.行。添加(dr2);
DataRow dr3=dt.NewRow();
dr3[“srno”]=“C”;
dr3[“详情”]=“20”;
dr3[“完成”]=“1”;
dr3[“厚度”]=“1500美元”;
dr3[“大小”]=“C”;
dr3[“可收费”]=“20”;
dr3[“单位”]=“1”;
dr3[“费率单位”]=“1500美元”;
dr3[“总计”]=“C”;
dt.行。添加(dr3);
返回dt;
}
}
}
如果不想使用邮件合并,则需要使用
table.AddRow()将行添加到word表中
,然后将datatable值按循环分配给word table(table.Rows[i].Cells[j].AddParagation().AppendText(dt.Rows[i][j].ToString();
)。经过一些努力,我得到了解决方案。您可以在下面的代码中进行检查
Table table = doc.Sections[0].Tables[0] as Table;
foreach (var item in Qu.Product)
{
ArrayList arrList = new ArrayList();
arrList.Add(a);
arrList.Add(item.Parti);
arrList.Add(item.Fin);
arrList.Add(item.Thick);
arrList.Add(item.Size);
arrList.Add(item.Charge);
arrList.Add(item.Unit);
arrList.Add(item.RateUnit);
arrList.Add(item.Total);
TableRow Trow = table.AddRow();
for (int row = 1; row <= 1; row++)
{
for (int col = 0; col < 9; col++)
{
Trow.Cells[col].AddParagraph().AppendText(arrList[col].ToString());
}
}
a++;
}
Table Table=doc.Sections[0]。表[0]为表;
foreach(Qu.Product中的var项目)
{
ArrayList arrList=新的ArrayList();
增列(a);
arrList.Add(项目部分);
arrList.Add(项目Fin);
arrList.Add(item.Thick);
arrList.Add(项目大小);
增加(项目费用);
arrList.Add(项目、单位);
arrList.Add(项目.费率单位);
增加(项目总数);
TableRow Trow=table.AddRow();
谢谢你的建议,但我试了不同的方法。