내 Windows 서비스에서 일부 Excel vba 코드를 실행하고 싶습니다. 서비스는 fileSystemWatcher를 사용하여 추가 할 XML 파일의 디렉토리를 모니터링합니다. 파일이 추가되면 xml 파일의 내용이 개체 속성으로 deserialize됩니다. 이 단계에서 Excel 파일을 열고이 값을 특정 셀에 전달하고 해당 작업 책에서 vba 코드를 실행하려고합니다. Windows 양식 응용 프로그램에서 완벽하게 작동하지만 내 Windows 서비스 응용 프로그램에서 작동하지 않습니다. 디버거를 응용 프로그램에 연결하여 어떤 일이 있었는지 확인했지만 오류가 발생하지 않고 모든 단계가 성공적으로 완료되었습니다. UI 서비스 및 사용자 권한과 상호 작용하는 데 문제가 있으므로 Windows 서비스가 MS Office 파일을 열 수 없음을 알고 있습니다. 그러나이 vba 코드를 서비스에서 실행시킬 수있는 방법을 찾기위한 작업을 찾고 있습니다. 어떤 도움을 크게 감상 할 수Windows 서비스에서 vba 코드를 실행하는 방법
private void FSWatcherTest_Created(object sender, System.IO.FileSystemEventArgs e)
{
Trade t;
XmlSerializer serializer;
XmlReader reader;
XmlWriter writer;
string filePath = @"C:\Inbox\TradeInfo.xml";
serializer = new XmlSerializer(typeof(Trade));
reader = XmlReader.Create(filePath);
t = (Trade)serializer.Deserialize(reader);
reader.Close();
string [email protected]"C:\Windows\System32\config\systemprofile\Desktop\TwsDde.xls";
oXL = new Microsoft.Office.Interop.Excel.Application();
oXL.Visible = true;
oXL.DisplayAlerts = false;
mWorkBook = oXL.Workbooks.Open(path,2, false, 5, "", "", true,Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true,false, false);
//Get all the sheets in the workbook
mWorkSheets = mWorkBook.Worksheets;
//Get the allready exists sheet
mWSheet1=(Microsoft.Office.Interop.Excel.Worksheet)mWorkSheets.get_Item("Basic Orders");
// Microsoft.Office.Interop.Excel.Range range= mWSheet1.UsedRange;
mWSheet1.Cells[12, 1] = "GE";
mWSheet1.Cells[12, 2] = "STK";
mWSheet1.Cells[12, 7] = "SMART";
mWSheet1.Cells[12, 9] = "USD";
mWSheet1.Cells[12, 12] = "Buy";
mWSheet1.Cells[12, 13] = "100";
mWSheet1.Cells[12, 14] = "MKT";
Excel.Range range;
Excel.Range row;
range = mWSheet1.get_Range("A12", "O12");
range.EntireRow.Select();
oXL.Run("TwsDde.xls!Sheet2.placeOrder");
}
: 나는 윈도우 7 홈 프리미엄 32 비트를 사용하고 내가 LocalSystem.This로 설정 내 서비스 내 계정을 가지고있는 것은 내가 사용하고있는 코드입니다. 또는이 코드가 포함 된 Windows 양식을 실행하는 것과 같은 일을하는 다른 방법일까요?
FWIW, 이것은 질문 된 질문에 대답하지 않습니다. 당신은 "내 Windows 서비스에서 Excel 매크로를 실행하고 싶습니다."라고 물어보고 대답으로 제안하고 Windows 서비스 외부에서 Excel 매크로를 실행했습니다. –