您的位置:首页 > 编程语言 > ASP

Asp.Net程序编辑Word文档以及在数据库中的保存和显示

2010-09-10 11:45 996 查看
  一,首先引用Microsoft Word 11.0 Object Library到项目里。

我们在某个目录下面有一个我们需要编辑的模板,里面带有书签。只要将书签替换一下就可以了。

Word.ApplicationClass oWordApp = new Word.ApplicationClass();
object fileName = @"D:\12.doc";
object readOnly = false;
object isVisible = true;
object missing = System.Reflection.Missing.Value;

  

protected void WordApp()
{

Word.Document oWordDoc = oWordApp.Documents.Open(ref fileName, ref missing, ref readOnly,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref isVisible,
ref missing, ref missing, ref missing,ref missing);
oWordDoc.Activate();

object oBookMark = "BarCode";
oWordDoc.Bookmarks.get_Item(ref oBookMark).Range.Text = "2010090909";
oBookMark = "ApplyUnitName";
oWordDoc.Bookmarks.get_Item(ref oBookMark).Range.Text = "开发单位";
//foreach (Word.Bookmark bm in oWordDoc.Bookmarks)
//{
// if (bm.Name == "BarCode")
// {
// bm.Select();
// bm.Range.Text = "2008";
// }
//}
//oWordApp.Selection.TypeText("hello");
//oWordApp.Selection.TypeParagraph();
Model.ReceivingManage.HouseRegReceivingItem m_HouseRegReceivingItem = new Model.ReceivingManage.HouseRegReceivingItem();
m_HouseRegReceivingItem.BussinessId = 100;
m_HouseRegReceivingItem.TableName = "ABC";

object isSave = false;
object saveFileName=@"D:\aaaa.doc";
oWordDoc.SaveAs(ref saveFileName, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing);
oWordApp.Application.Quit(ref missing, ref missing, ref missing);
FileInfo fileInfo=new FileInfo(saveFileName.ToString());

FileStream fs= File.Open(saveFileName.ToString(), FileMode.Open);
byte[] buffer =new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
m_HouseRegReceivingItem.FileName = "wwww";
m_HouseRegReceivingItem.ContentType="application/octet-stream";
fs.Close();
m_HouseRegReceivingItem.FileContent=buffer;
if (Bussiness.ReceivingManage.HouseRegReceivingItemB.Add(m_HouseRegReceivingItem).IsSuccess)
{
File.Delete(saveFileName.ToString());
}
else
{
throw new Exception("");
}
}

这样就将编辑后的内容保存到数据库去了。

二,下面是从数据库读取显示的事情,

SqlConnection conn = new SqlConnection(Util.SqlHelper.ConnectionString);
conn.Open();
Result result = new Result();
SqlTransaction sqlTrans = conn.BeginTransaction();
Model.ReceivingManage.HouseRegReceivingItem m_HouseRegReceivingItem = null;

try
{
m_HouseRegReceivingItem = DBAccess.ReceivingManage.HouseRegReceivingItemD.GetModel(sqlTrans,m_HouseRegReceivingItemId);
if (m_HouseRegReceivingItem ==null)
throw new Exception("读取失败!");
byte[] Doc = m_HouseRegReceivingItem.FileContent;
page.Response.Clear();
page.Response.Buffer = true;
page.Response.Charset = "GB2312";
Encoding gb2312=System.Text.Encoding.GetEncoding("GB2312"); //防止了乱码出现
page.Response.ContentEncoding = gb2312;//设置输出流为简体中文
page.Response.ContentType = m_HouseRegReceivingItem.ContentType;// "application/ms-word";//设置输出文件类型为word文件。
string FileName = m_HouseRegReceivingItem.FileName;
FileName = System.Web.HttpUtility.UrlEncode(FileName, gb2312);
page.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, gb2312));
page.Response.BinaryWrite(Doc);
page.Response.Flush();
page.Response.End();

}
catch (Exception ex)
{
result.Msg = ex.Message;
result.IsSuccess = false;
sqlTrans.Rollback();
throw ex;

}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
sqlTrans.Dispose();
conn.Dispose();
}
return result;

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐