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;
我们在某个目录下面有一个我们需要编辑的模板,里面带有书签。只要将书签替换一下就可以了。
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;
相关文章推荐
- ASP.NET下Word文档的在线编辑、保存和全文关键字搜索的完整示例(包含源代码)
- ASP.NET下Word文档的在线编辑、保存和全文关键字搜索的完整示例
- asp.net 在线编辑word文档 可保存到服务器
- asp.net 在线编辑word文档 可保存到服务器
- ASP.NET网络爬虫小研究 HtmlAgilityPack基础,爬取数据保存在数据库中再显示再自己的网页中
- ASP.NET下Word在线编辑、保存和全文关键字搜索的完整示例(包含源代码)
- ASP.NET网络爬虫小研究 HtmlAgilityPack基础,爬取数据保存在数据库中再显示再自己的网页中
- Asp.net中图片存储数据库以及页面读取显示通用方法详解-附源码下载
- ASP.NET:在一般处理程序中通过 Session 保存验证码却无法显示图片?
- ASP.NET网络爬虫小研究 HtmlAgilityPack基础,爬取数据保存在数据库中再显示再自己的网页中
- Asp.net中图片存储数据库以及页面读取显示通用方法详解-附源码下载
- Asp.net 中图片存储数据库以及页面读取显示通用方法详解-附源码下载
- JAVA IO操作文件(包括word文档的显示)-asp.net关注
- ASP.NET网络爬虫小研究 HtmlAgilityPack基础,爬取数据保存在数据库中再显示再自己的网页中
- Asp.net 中图片存储数据库以及页面读取显示通用方法详解
- ASP 把数据库内容生成Word文档保存到目录下
- ASP.NET网络爬虫小研究 HtmlAgilityPack基础,爬取数据保存在数据库中再显示再自己的网页中
- asp.net页面显示word文档内容
- asp.net对word文档进行修改 对于使用word文档做模板编辑比较适用
- ASP 把数据库内容生成Word文档保存到目录下