2010-12-22 2 views
0

프로젝트에서 사용자가 버튼을 클릭하면 interop 라이브러리가 일부 데이터를 가져와 엑셀 인스턴스에 씁니다.저장 대화 상자를 사용하여 생성 된 Excel 인스턴스를 클라이언트의 디스크에 저장하는 방법

이제 내가 원한다 : 엑셀 인스턴스가 모든 데이터를 가져올 때 대화 상자로 저장해야하며이 엑셀 인스턴스를 사용자 지정 경로에 저장해야합니다.

할 방법이 있습니까?

편집 :

내 코드는 데이터를 엑셀 갈 수는 여기에 있습니다 :

Public Sub ExportToExcel(ByVal dt As DataTable, ByVal outputPath As String) 
    ' Create the Excel Application object 
    Dim excelApp As New Microsoft.Office.Interop.Excel.ApplicationClass 

    ' Create a new Excel Workbook 
    Dim excelWorkbook As Excel.Workbook = excelApp.Workbooks.Add(Type.Missing) 

    Dim excelSheet As Excel.Worksheet = excelWorkbook.Worksheets(1) 
    excelApp.Visible = True 
    ' Copy each DataTable as a new Sheet 
    'sheetIndex += 1 

    '' Create a new Sheet 
    'excelSheet = CType(_ 
    ' excelWorkbook.Sheets.Add(excelWorkbook.Sheets(sheetIndex), _ 
    ' Type.Missing, 1, Microsoft.Office.Interop.Excel.XlSheetType.xlWorksheet), Microsoft.Office.Interop.Excel.Worksheet) 

    excelSheet.Name = "Bayi" 

    ' Copy the column names (cell-by-cell) 
    For col = 0 To dt.Columns.Count - 1 
     excelSheet.Cells(1, col + 1) = dt.Columns(col).ColumnName 
    Next 

    CType(excelSheet.Rows(1, Type.Missing), Microsoft.Office.Interop.Excel.Range).Font.Bold = True 

    ' Copy the values (cell-by-cell) 
    For col = 0 To dt.Columns.Count - 1 
     For row = 0 To dt.Rows.Count - 1 
      excelSheet.Cells(row + 2, col + 1) = dt.Rows(row).ItemArray(col) 
     Next 
    Next 

    excelSheet = Nothing 

    ' Save and Close the Workbook 
    excelWorkbook.SaveAs(outputPath, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, Type.Missing, _ 
    Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, _ 
    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing) 

    excelWorkbook.Close(True, Type.Missing, Type.Missing) 

    excelWorkbook = Nothing 

    ' Release the Application object 
    excelApp.Quit() 
    excelApp = Nothing 

    ' Collect the unreferenced objects 
    GC.Collect() 
    GC.WaitForPendingFinalizers() 

End Sub 
+1

서버에서 Excel을 사용하고 있습니까? ** **하지 마십시오. – SLaks

+0

내 코드가 위입니다. 그것에 대해 무엇이 잘못 되었나요? – mavera

+0

SLaks @ 1 +! 전 그렇게 생각하지 않아요! – sv88erik

답변

1

입니다 서버 측에서 생성 한 다음 Excel 파일의 내용을 응답에 쓰고 올바른 MIME 유형을 설정하십시오. 오후 8시 30 분 P.S. 현재 생성 된 응답을 지우는 것을 잊지 마십시오.

+0

내가 원하는거야. 하산 감사합니다. – mavera

1

u는 웹 서버에서 클라이언트에 추가하려고하면이 방법이 경우이 없다. 브라우저/클라이언트 소프트웨어의 보안을 뛰어 넘기 위해 클라이언트/유사 제품에 플래시/실버 라이트를 설치하지 않고도.

업데이트 : 는 그녀의 나는 이것이 당신이 원하는 것을, 잘 모르겠지만, 당신이 수 있도록하려면 사용자가 당신 했으므로 엑셀 파일을 다운로드 "A quick look at Silverlight 3: Save File Dialog" 그리고 How to read and write files in JavaScript

+0

좋습니다. 조언이나 조언과 관련하여 링크 또는 리소스를 제공 할 수 있습니까? – mavera

+0

업데이트 됨 ....... – sv88erik

+0

당신은 asp.net 또는 자바 스크립트로 해결할 수 없다고합니까? Thats 's senseless – mavera

관련 문제