2014-12-16 1 views
1

.NET 웹 시스템에서 Sheet1.Workbook_Open이라는 Excel 매크로를 실행하려고합니다..Net 웹 시스템에서 Excel 매크로를 실행하려면 어떻게해야합니까?

아래는 현재 코드입니다.

xlApp = New Excel.Application 
xlWorkBook = xlApp.Workbooks.Open("C:\Testing\TempFile.xlsm") 
xlWorkSheet = xlWorkBook.Worksheets("TestSpreadsheet") 

Dim MacroName As String = "Sheet1.Workbook_Open" 

xlApp.Run(MacroName) 

Dim FileDate As String = SysdateTextBox.Text 
FileDate = FileDate.Replace(" ", "") 
FileDate = FileDate.Replace("/", "") 
FileDate = FileDate.Replace(":", "") 

FileName = "C:\Testing\File" & FileDate & ".xlsm" 

xlWorkBook.SaveAs(FileName) 
xlWorkBook.Close(True) 
xlApp.Quit() 

그러나 오류가있는 행 xlApp.Run(MacroName)에서 실패합니다.

Exception from HRESULT: 0x800A01A8 

System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x800A01A8 

왜 이런 일이 발생하며 어떻게 해결할 수 있습니까? 이 오류는 프로젝트가 로컬 컴퓨터에서 호스팅 될 때 발생하지 않으며 서버에있는 경우에만 발생합니다.

+0

Microsoft Office와 Excel이 서버에 설치되어 있습니까? 그렇다면 로컬 시스템과 동일한 버전입니까? – Tim

+0

Excel이 서버에 설치되어 있으며 버전이 동일합니다. –

+0

코드를 실행하는 데 사용되는 계정은 무엇입니까? 귀하의 컴퓨터에서 로컬 관리자 및 서버에있을 수 있습니다. 이벤트 로그를 확인 했습니까? 어쩌면 거기에 더 많은 정보를 얻을 수 있습니다. – dee

답변

2

내가 듣기를 원하는 답변이 아니지만 정답은 ... 너는이 아닙니다. 모든 무인, 비에서

마이크로 소프트는 현재 권장되지 않으며, 지원하지 않는, Microsoft Office 응용 프로그램의 자동화 : 사무 자동화는 웹 응용 프로그램이 포함되어 무인 코드에서 지원되지 않습니다

Microsoft explicitly states 것을 Office가이 환경에서 실행될 때 Office가 불안정한 동작 및/또는 교착 상태를 나타낼 수 있기 때문에 대화 형 클라이언트 응용 프로그램 또는 구성 요소 (ASP, ASP.NET, DCOM 및 NT 서비스 포함)를 사용할 수 없습니다.

Excel 파일과 상호 작용해야하는 경우 올바른 해결책은 use a .NET library that supports the Excel file format입니다. 불행히도 기존 Excel VBA 코드를 사용할 수 없다는 뜻입니다.

0

새로운 공개 절차를 정의 (새 모듈을 추가) :

Public Sub MyMacro() 
    'do something 
End Sub 

다음 호출이 방법 :

Dim sMacroName As String = "TempFile.xlsm!MyMacro" 
xlApp.Run(sMacroName) 

at 더 :

http://forums.asp.net/t/1366665.aspx?How+to+run+a+Macro+of+an+Excel+file+opened+on+web+server

http://www.nullskull.com/articles/create_macro_at_runtime_in_dotnet.asp

http://www.siddharthrout.com/2012/03/20/calling-excel-macros-programmatically-in-vb-net/

http://support.microsoft.com/kb/306682

16,는 나는 그것이 도움이되기를 바랍니다.

관련 문제