我以前做的开发是用的微软的office, 现在单位要WPS的office,所以我的程序也得有变动, 我以前做的是在微软word中定义书签,根据定义的书签在WORD中写放内容.可改成WPS后. 网面上的内容无法付给定义的书签(比如第一个书签wsee.Bh.Trim()能取到内容却无法赋给bm.Range.Text),不知道各位有没有什么好的办法.下面是部分代码
Document doc = app.Documents.Open((string)newfile, false, false, false, "", "", false, "", "", 0, 0, false, false, 0, false);
bool noPicUserSignatory = false;
string pers;
try
{
foreach (Bookmark b3 in doc.Bookmarks)
{
b3.Range.Text = string.Empty;
}
foreach (Bookmark bm in doc.Bookmarks)
{
bm.Select();
switch (bm.Name)
{
case "Bh":
bm.Range.Text = wsee.Bh.Trim();
break;
case "Sqr":
bm.Range.Text = wsee.Sqr.Trim();
break;
case "Sqsj":
if (wsee.Sqsj>new DateTime(1000,1,1))
{
bm.Range.Text = wsee.Sqsj.ToString("yyyy月 MM月 dd日").Trim();
}
break;
case "Jhgzsj":
bm.Range.Text = wsee.Jhgzsj.Trim();
break;
case "Gzry":
bm.Range.Text = wsee.Gzry.Trim();
break;
case "Bz":
bm.Range.Text = wsee.Bz.Trim();
break;
}
}
if (noPicUserSignatory)
{
Page.ClientScript.RegisterClientScriptBlock(
this.GetType(), "script", "人员(" + personName.Trim() + ")的电子签名缺失,请联系管理员。");
}
else
{
doc.Save();
}
}
finally
{
//关闭文档
doc.Close(ref tflag, ref nothing, ref nothing);
app.Quit(ref tflag, ref nothing, ref nothing);
//关闭进程
if (doc != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);
doc = null;
}
if (app != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
app = null;
}
GC.Collect();
}
Document doc = app.Documents.Open((string)newfile, false, false, false, "", "", false, "", "", 0, 0, false, false, 0, false);
bool noPicUserSignatory = false;
string pers;
try
{
foreach (Bookmark b3 in doc.Bookmarks)
{
b3.Range.Text = string.Empty;
}
foreach (Bookmark bm in doc.Bookmarks)
{
bm.Select();
switch (bm.Name)
{
case "Bh":
bm.Range.Text = wsee.Bh.Trim();
break;
case "Sqr":
bm.Range.Text = wsee.Sqr.Trim();
break;
case "Sqsj":
if (wsee.Sqsj>new DateTime(1000,1,1))
{
bm.Range.Text = wsee.Sqsj.ToString("yyyy月 MM月 dd日").Trim();
}
break;
case "Jhgzsj":
bm.Range.Text = wsee.Jhgzsj.Trim();
break;
case "Gzry":
bm.Range.Text = wsee.Gzry.Trim();
break;
case "Bz":
bm.Range.Text = wsee.Bz.Trim();
break;
}
}
if (noPicUserSignatory)
{
Page.ClientScript.RegisterClientScriptBlock(
this.GetType(), "script", "人员(" + personName.Trim() + ")的电子签名缺失,请联系管理员。");
}
else
{
doc.Save();
}
}
finally
{
//关闭文档
doc.Close(ref tflag, ref nothing, ref nothing);
app.Quit(ref tflag, ref nothing, ref nothing);
//关闭进程
if (doc != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);
doc = null;
}
if (app != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
app = null;
}
GC.Collect();
}