2011-04-12 8 views
0

Excel Interop에 처음 입성했으며 비행 시작 후에 벽에 부딪혔습니다.Excel 템플릿 : 데이터 병합 및 통합 문서 저장

평가 양식 인 하나의 시트와 평가 수행 방법에 대한 지침이 포함 된 Excel 템플릿이 있습니다.

또한 평가할 프로젝트의 세부 정보가 포함 된 XML 파일이 있습니다.

첫 번째 시트에 프로젝트 제목, 응용 프로그램 번호 및 회사 이름을 병합 한 다음 [Application No] - [Project Title] .xlsx 파일 이름으로 시트를 저장해야합니다.

첫 번째 부분은 정상적으로 작동합니다. XML을로드하고 코드가 있어야하는 양식에 데이터를 넣고 있습니다.

내 문제는 저장 부분입니다. .SaveAs 메서드를 발견하고 몇 개의 파일을 만듭니다 ... 그러나 그들은 열리지 않습니다. 그런 다음 HRESULT 오류가 발생합니다. 0x800A03EC - 웹 검색 중 이에 대한 설명이 없습니다. 뭔가 말하고 있습니다.이. 세이브()는 워크 북이 아니라 워크 시트를 가리키고 있습니다 만, 나는 거기에서 추측하고 있습니다.

나는 바보 같은 짓을하고 쉽게 해결할 수 있기를 바라고 있습니다.

내 코드는 여기에 참조 할만하지만 필자는 그것이 얼마나 유용한 지 잘 모르겠다.

private void MergeData() 
    { 
     doc.Load(@"C:\XML Data\source.xml"); 

     XmlNodeList forms = doc.SelectNodes("//form1"); 

     for (int i = 0; i < forms.Count; i++) 
     { 
      XmlNodeList nodes = forms[i].ChildNodes; 

      string refNo = nodes[0].InnerText.ToString(); 
      string companyName = nodes[3].InnerText.ToString(); 
      string title = nodes[1].InnerText.ToString(); 

      this.Cells[9, 4] = title; 
      this.Cells[11, 4] = refNo; 
      this.Cells[14, 4] = companyName; 


      this.SaveAs(@"C:\Assessment Forms\" + refNo + " - " + title + ".xlsx"); 
     } 
    } 

누구든지이 파일을 저장하는 방법을 알고 있습니까?

EDIT--

를 읽기위한

덕분에이 기사

C# and Excel Interop issue, Saving the excel file not smooth

을 발견하고 제안

Excel.Application app = this.Application; 
Excel.Workbook wb = app.Workbooks.Add(missing); 
wb.SaveAs(@"C:\Assessment Forms\" + refNo + " - " + title + ".xlsx"); 

를 포함하도록 코드를 변경하지만은 않은 같은 일을합니다.

나는 마감입니다

그래서, 나는 복사, 붙여 넣기를 시작해야 할 것 수동으로 저장 :(여기에 어떤 객체 this 확실하지

답변

1

을하고 생각하지만, 당신이 this 가정에서 올바른지 워크 시트입니다 this이 범위로 밝혀지면 또는 this.Parent.SaveAs

는, 이것에 대한 this.Worksheet.Parent.SaveAs

+0

감사를하려고 시도합니다. 나는 그것을보고 다시 가서 당신은 바로 내가 시트에 코딩 된 있었다. 대신 this.Parent를 사용. 저장합니다. 코드를 통합 문서 아래에 놓습니다. 고정되어있다. – Slotty

관련 문제