다음을 통해 공유


방법: 디스크에 쓰지 않고 문서에 데이터 삽입

업데이트: 2007년 11월

적용 대상

이 항목의 정보는 지정된 Visual Studio Tools for Office 프로젝트 및 Microsoft Office 버전에만 적용됩니다.

프로젝트 형식

  • 문서 수준 프로젝트

Microsoft Office 버전

  • 2007 Microsoft Office system

  • Microsoft Office 2003

자세한 내용은 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

메모리에 있는 Visual Studio Tools for Office 솔루션 문서에 데이터를 삽입하여 데이터가 하드 디스크에 기록되지 않도록 만들 수 있습니다. HTTP 프로토콜을 사용하여 문서를 사용자에게 바이트 배열로 보내야 하는 경우 데이터를 수정할 임시 파일을 만드는 대신 이 기능을 사용하여 바이트 배열의 데이터를 직접 수정할 수 있습니다.

문서에 데이터를 삽입하려면

  1. 문서를 메모리에 바이트 배열로 로드합니다.

    Dim name As String = "C:\Documents\WordApplication3.doc"
    Dim fileStream As System.IO.FileStream = Nothing
    Dim bytes() As Byte = Nothing
    
    Try
        fileStream = New System.IO.FileStream( _
            name, System.IO.FileMode.Open, System.IO.FileAccess.Read)
        ReDim bytes(fileStream.Length)
        fileStream.Read(bytes, 0, fileStream.Length)
    
    Finally
        If Not fileStream Is Nothing Then
            fileStream.Close()
        End If
    End Try
    
    string name = @"C:\Documents\WordApplication3.doc";
    System.IO.FileStream fileStream = null;
    byte[] bytes = null;
    
    try
    {
        fileStream = new System.IO.FileStream(
            name, System.IO.FileMode.Open, System.IO.FileAccess.Read);
        bytes = new byte[(int)fileStream.Length];
        fileStream.Read(bytes, 0, (int)fileStream.Length);
    }
    finally
    {
        if (fileStream != null)
        {
            fileStream.Close();
        }
    }
    
  2. 바이트 배열을 파일 이름 대신 서버측 개체 모델에 전달한 다음 데이터 조작을 수행합니다.

    Dim sd1 As ServerDocument = Nothing
    Try
        sd1 = New ServerDocument(bytes, name)
    
        ' Your data manipulation code goes here. 
    
        sd1.Save()
    
    ServerDocument sd1 = null;
    try
    {
        sd1 = new ServerDocument(bytes, name);
    
        // Your data manipulation code goes here. 
    
        sd1.Save();
    
  3. 문서를 최종 사용자에게 보내고 ServerDocument를 닫습니다.

        ' If you have a Word document, use the MIME string:
        Response.ContentType = "application/msword"
    
        ' If you have an Excel workbook, use the MIME string:
        'Response.ContentType = "application/vnd.ms-excel"
    
        Response.AddHeader("Content-disposition", "filename=" + name)
        Response.BinaryWrite(sd1.Document)
    
    Finally
        If Not sd1 Is Nothing Then
            sd1.Close()
        End If
    End Try
    
        // If you have a Word document, use the MIME string:
        Response.ContentType = "application/msword";
    
        // If you have an Excel workbook, use the MIME string:
        //Response.ContentType = "application/vnd.ms-excel";
    
        Response.AddHeader("Content-disposition", "filename=" + name);
        Response.BinaryWrite(sd1.Document);
    }
    finally
    {
        if (sd1 != null)
        {
            sd1.Close();
        }
    }
    

코드 컴파일

이 예제에는 다음 사항이 필요합니다.

  • 예제 코드를 포함하는 ASP.NET 프로젝트가 있어야 합니다.

  • 데이터 캐시가 있고 C:\Documents 폴더에 위치한 WordApplication3.doc라는 Microsoft Office Word 문서가 있어야 합니다.

ASP.NET 프로젝트 설정

ASP.NET 프로젝트에는 다음 어셈블리 중 하나에 대한 참조가 있어야 합니다.

  • Word 2007의 경우 Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll에 참조를 추가합니다.

  • Word 2003의 경우 Microsoft.VisualStudio.Tools.Applications.Runtime.dll에 대한 참조를 추가합니다.

코드 예제를 복사할 대상 코드 파일에는 다음 네임스페이스 중 하나에 대한 Imports 문(Visual Basic의 경우) 또는 using 문(C#의 경우)이 있어야 합니다.

참고 항목

작업

방법: 서버에 있는 통합 문서에 데이터 삽입

방법: 서버에 있는 통합 문서에서 캐시된 데이터 검색

방법: 서버에 있는 통합 문서에서 캐시된 데이터 변경

개념

서버에 있는 문서의 데이터 액세스