给你一段代码,自己看看。using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Reflection;namespace OpenDoc
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;

private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
} #region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{    
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void Button1_Click(object sender, System.EventArgs e)
{
Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();  
//Make sure that Word will be visible.
app.Visible=true;
// Setting these variables to Missing.Value is comparable
// to not providing a value for an optional parameter in VB.
// This gets the default behavior.
string path=Page.Request.MapPath("");
object fileName = path + "/example3.doc";
object optional = Missing.Value;

Microsoft.Office.Interop.Word._Document doc = app.Documents.Open2000( ref fileName,
ref optional,
ref optional,
ref optional,
ref optional,
ref optional,
ref optional,
ref optional,
ref optional,
ref optional,
ref optional,
ref optional);


object first=0;
object last=doc.Characters.Count;
doc.Range(ref first, ref last).Select();

doc.Range(ref first, ref last).Cut();

fileName += "_new";

doc.SaveAs2000( ref fileName,
ref optional,
ref optional,
ref optional,
ref optional,
ref optional,
ref optional,
ref optional,
ref optional,
ref optional,
ref optional);

object saveChanges = true;
app.Quit(ref saveChanges, ref optional, ref optional);

}
}
}

解决方案 »

  1.   

    上面是导出,这个是将.doc文件导入到数据库。SqlCommand getEmp = new SqlCommand("SELECT EmployeeID, Photo "+"FROM Employees "+"WHERE LastName = @lastName "+"AND FirstName = @firstName", _conn); 
    getEmp.Parameters.Add("@LastName",  SqlDbType.NVarChar, 20).Value = plastName;
    getEmp.Parameters.Add("@FirstName", SqlDbType.NVarChar, 10).Value = pfirstName;
    FileStream fs;                          
    // Writes the BLOB to a file (*.doc).            
    BinaryWriter bw;                        
    // Streams the BLOB to the FileStream object.
    int bufferSize = 100; 
    // Size of the BLOB buffer.
    byte[] outbyte = new byte[bufferSize];
    // The BLOB byte[] buffer to be filled by GetBytes.
    long retval; 
    // The bytes returned from GetBytes.
    long startIndex = 0; 
    // The starting position in the BLOB output.
    string emp_id = "";  
    // The employee id to use in the file name.            
    // Open the connection and read data into the 
    DataReader._conn.Open();            
    SqlDataReader myReader = getEmp.ExecuteReader(CommandBehavior.SequentialAccess);            
    while (myReader.Read())            
    {                
    // Get the employee id, which must occur before getting the employee.emp_id = myReader.GetInt32(0).ToString(); 
    // Create a file to hold the output.fs = new FileStream("employee" + emp_id + ".bmp",FileMode.OpenOrCreate, FileAccess.Write);
    bw = new BinaryWriter(fs);                
    // Reset the starting byte for the new BLOB.startIndex = 0;                
    // Read the bytes into outbyte[] and retain the number of bytes returned.
    retval = myReader.GetBytes(1, startIndex, outbyte, 0, bufferSize);
    // Continue reading and writing while there are bytes beyond the size of the buffer.
    while (retval == bufferSize)                
    {                    
    bw.Write(outbyte);                    
    bw.Flush();                    
    // Reposition the start index to the end of the last buffer and fill the buffer.
    startIndex += bufferSize;                    
    retval = myReader.GetBytes(1, startIndex, outbyte, 0, bufferSize)
      

  2.   

    D:\wwwroot\wordapp\opendoc.aspx.cs(61): 类型或命名空间名称“Office”在类或命名空间“Microsoft”中不存在(是否缺少程序集引用?)
    还需要添加组件么?这样是读到哪儿,读到内存么?还望赐教.....