建站学 - 轻松建站从此开始!

建站学-个人建站指南,网页制作,网站设计,网站制作教程

当前位置: 建站学 > 网站开发 > asp.net教程 >

使用Asp.Net 操作Office

时间:2011-01-04 10:56来源: 作者: 点击:
使用asp.net操作office文件的方法总结,下面是内容及引用文件 1. 引用文件, http://www.jzxue.com/System/uploads/soft/DYfj/2_110104110316.rar 2. 操作word代码示例: using ImportExportToO

使用asp.net操作office文件的方法总结,下面是内容及引用文件

1. 引用文件,点击此处下载

2. 操作word代码示例:

using ImportExportToOffice;
using Microsoft.ApplicationBlocks.Data;

  
protected void btnJianJie_Click(object sender, EventArgs e)
     {
        
string sYear = DropDownList2.SelectedValue;
        
string sMonth = DropDownList1.SelectedValue;
        
string sDate1 = String.Format("{0}-{1}-{2}", sYear, sMonth, "1");
        
string sDate2 = String.Format("{0}-{1}-{2}", sYear, sMonth, System.DateTime.DaysInMonth(int.Parse(sYear), int.Parse(sMonth)).ToString());
         word
= new ImportExportToWord();

        
string sTmpUrl = "../Report/" + Guid.NewGuid().ToString() + ".Doc";
        
string sTmpFile = Server.MapPath(sTmpUrl);
        
string sModelDoc = Server.MapPath("../Report/国际漫游简报模板.doc");
         System.IO.File.Copy(sModelDoc, sTmpFile,
true);
        
try
         {
             word.Open(sTmpFile);

            
object sBookMark = "";

            
//GSM 来访前十 分公司
             sBookMark = "GSM_1";
            
if (word.Document.Bookmarks.Exists(sBookMark.ToString()))
             {
                 word.Document.Bookmarks.get_Item(
ref sBookMark).Select();

                
string sSql = "SELECT TOP 10 t1.ToCarrier, COUNT(t1.ToCarrier) AS Num, t2.ShortName AS Name" +
                    
" FROM BiteGSM t1 INNER JOIN" +
                    
" BranchInfo t2 ON t1.ToCarrier = t2.ID" +
                    
" INNER JOIN DispatchInfo t3 ON t1.DispatchID = t3.ID" +
                    
" Where t3.SendTime >='" + sDate1 + "'" +
                    
" And t3.SendTime <='" + sDate2 + "'" +
                    
" And t1.SimType=1" +
                    
" GROUP BY t1.ToCarrier, t2.ShortName" +
                    
" ORDER BY COUNT(t1.ToCarrier) DESC";
                 SqlDataReader dr
= SqlHelper.ExecuteReader(Connection.ConnectionString, CommandType.Text, sSql);
                
while (dr.Read())
                 {
                     word.Application.Selection.TypeText(dr[
"Name"].ToString());
                     word.GoToRightCell();
                     word.Application.Selection.TypeText(dr[
"Num"].ToString());
                     word.GoToLeftCell();
                     word.GoToDownCell();
                 }
                 dr.Close();
             }

            
//CDMA 来访前十 分公司
             sBookMark = "CDMA_1";
            
if (word.Document.Bookmarks.Exists(sBookMark.ToString()))
             {
                 word.Document.Bookmarks.get_Item(
ref sBookMark).Select();

                
string sSql = "SELECT TOP 10 t1.ToCarrier, COUNT(t1.ToCarrier) AS Num, t2.ShortName AS Name" +
                    
" FROM BiteGSM t1 INNER JOIN" +
                    
" BranchInfo t2 ON t1.ToCarrier = t2.ID" +
                    
" INNER JOIN DispatchInfo t3 ON t1.DispatchID = t3.ID" +
                    
" Where t3.SendTime >='" + sDate1 + "'" +
                    
" And t3.SendTime <='" + sDate2 + "'" +
                    
" And t1.SimType=2" +
                    
" GROUP BY t1.ToCarrier, t2.ShortName" +
                    
" ORDER BY COUNT(t1.ToCarrier) DESC";
                 SqlDataReader dr
= SqlHelper.ExecuteReader(Connection.ConnectionString, CommandType.Text, sSql);
                
while (dr.Read())
                 {
                     word.Application.Selection.TypeText(dr[
"Name"].ToString());
                     word.GoToRightCell();
                     word.Application.Selection.TypeText(dr[
"Num"].ToString());
                     word.GoToLeftCell();
                     word.GoToDownCell();
                 }
                 dr.Close();
             }

            
//GSM 去访前十 分公司
             sBookMark = "GSM1";
            
if (word.Document.Bookmarks.Exists(sBookMark.ToString()))
             {
                 word.Document.Bookmarks.get_Item(
ref sBookMark).Select();

                
string sSql = "SELECT TOP 10 t1.ToCarrier, COUNT(t1.ToCarrier) AS Num, t2.CarrierName AS Name" +
                    
" FROM Unicom2TSTT t1 INNER JOIN" +
                    
" CarrierInfo t2 ON t1.ToCarrier = t2.ID" +
                    
" INNER JOIN DispatchInfo t3 ON t1.DispatchID = t3.ID" +
                    
" Where t3.SendTime >='" + sDate1 + "'" +
                    
" And t3.SendTime <='" + sDate2 + "'" +
                    
" And t1.SimType=1" +
                    
" GROUP BY t1.ToCarrier, t2.CarrierName" +
                    
" ORDER BY COUNT(t1.ToCarrier) DESC";
                 SqlDataReader dr
= SqlHelper.ExecuteReader(Connection.ConnectionString, CommandType.Text, sSql);
                
while (dr.Read())
                 {
                     word.Application.Selection.TypeText(dr[
"Name"].ToString());
                     word.GoToRightCell();
                     word.Application.Selection.TypeText(dr[
"Num"].ToString());
                     word.GoToLeftCell();
                     word.GoToDownCell();
                 }
                 dr.Close();
             }

            
//CDMA 去访前十 分公司
             sBookMark = "CDMA1";
            
if (word.Document.Bookmarks.Exists(sBookMark.ToString()))
             {
                 word.Document.Bookmarks.get_Item(
ref sBookMark).Select();

                
string sSql = "SELECT TOP 10 t1.ToCarrier, COUNT(t1.ToCarrier) AS Num, t2.CarrierName AS Name" +
                    
" FROM Unicom2TSTT t1 INNER JOIN" +
                    
" CarrierInfo t2 ON t1.ToCarrier = t2.ID" +
                    
" INNER JOIN DispatchInfo t3 ON t1.DispatchID = t3.ID" +
                    
" Where t3.SendTime >='" + sDate1 + "'" +
                    
" And t3.SendTime <='" + sDate2 + "'" +
                    
" And t1.SimType=2" +
                    
" GROUP BY t1.ToCarrier, t2.CarrierName" +
                    
" ORDER BY COUNT(t1.ToCarrier) DESC";
                 SqlDataReader dr
= SqlHelper.ExecuteReader(Connection.ConnectionString, CommandType.Text, sSql);
                
while (dr.Read())
                 {
                     word.Application.Selection.TypeText(dr[
"Name"].ToString());
                     word.GoToRightCell();
                     word.Application.Selection.TypeText(dr[
"Num"].ToString());
                     word.GoToLeftCell();
                     word.GoToDownCell();
                 }
                 dr.Close();
             }

             word.SaveAs(sTmpFile);
             word.Quit();
             SysUtil.Log(UserContext.GetUserContext(), FunctionContext.GetFunctionContext(),OperType.其它, LogLevel.信息,
"生成国际漫游简报成功");
             Response.Write(
"<script>window.open(\"" + sTmpUrl + "\")</script>");
         }
        
catch (Exception err)
         {
            
try
             {
                 word.Quit();
             }
            
catch
             {
             }
             SysUtil.Log(UserContext.GetUserContext(), FunctionContext.GetFunctionContext(),OperType.其它, LogLevel.信息,
"生成国际漫游简报失败,错误信息:" + err.Message);
         }
     }

3.部署相关: 确保服务器正确安装office 2k3
运行后若office进程起不来,如下检查:
1.运行Dcomcnfg.exe
2.组件服务――计算机――我的电脑――DCOM配置――找到microsoft word 文档
3.点击属性
4.选择“安全性”
5.选定“使用自定义访问权限”和“使用自定义启动权限”
6.分别编辑权限,添加Everyone(ASPNET,VS Developers,Debugger User)
7.选择“身份标识”,在选定“交互式用户” 即可
8.在Web.config里加 <identity impersonate="true"/> (责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片