2013-01-09 3 views
2

는 내가 코드를 아래로 시도했지만 내가 엑셀을 열 때 예외를 던지고있다open xml C#을 사용하여 Excel에서 눈금 선을 사용하지 않도록 설정하는 방법?

이 예외 "부분을 수리 C#에서 오픈 XML을 사용하여 세포를 엑셀 엑셀에서 눈금 선을 사용하지 않도록 설정 및 사용자 정의 테두리를 넣을 :/xl/worksheets/sheet.xml 부분에 XML 오류가 있음로드 오류, 줄 1, 열 0 "

   using (SpreadsheetDocument xl = SpreadsheetDocument.Create(sFile, SpreadsheetDocumentType.Workbook)) 
      { 
       WorkbookPart wbp = xl.AddWorkbookPart(); 
       WorksheetPart wsp = wbp.AddNewPart<WorksheetPart>(); 
       Workbook wb = new Workbook(); 
       FileVersion fv = new FileVersion(); 
       fv.ApplicationName = "Microsoft Office Excel"; 
       Worksheet ws = new Worksheet(); 
       SheetViews sheetViews = new SheetViews(); 

       SheetView sheetView = new SheetView(); 
       sheetView.ShowGridLines = new BooleanValue(false); 
       sheetViews.Append(sheetView); 
       ws.Append(sheetViews); 

       WorkbookStylesPart wbsp = wbp.AddNewPart<WorkbookStylesPart>(); 
       //// add styles to sheet 
       wbsp.Stylesheet = CreateStylesheet(); 
       wbsp.Stylesheet.Save(); 
       //// add styles to sheet 
       ////wbsp.Stylesheet = GenerateStyleSheet(); 


       //wbsp.Stylesheet.Save(); 
       Columns columns = new Columns(); 
       columns.Append(CreateColumnData(1, 1, 25)); 
       ws.Append(columns); 

       //// generate rows 
       SheetData sd = CreateSheetData(products); 
       ws.Append(sd); 
       wsp.Worksheet = ws; 
       wsp.Worksheet.Save(); 

       MERGEiNITIALcELLS(wsp); 

       wb.Append(fv); 
       CreateSheet(wbp, wsp, wb); 
       xl.WorkbookPart.Workbook = wb; 
       xl.WorkbookPart.Workbook.Save(); 


       xl.Close(); 

답변

3

SheetView 클래스의 WorkbookViewId 속성은 필수 속성/속성입니다. 이것을 시도하십시오 :

SheetView sheetView = new SheetView(); 
sheetView.ShowGridLines = new BooleanValue(false); 
sheetView.WorkbookViewId = 0; 
sheetViews.Append(sheetView); 
ws.Append(sheetViews); 

첫 번째 (기본) 통합 문서보기를 사용합니다. 걱정하지 마라. 명시 적으로 Bookbooks 클래스의 WorkbookView 자식을 만들 필요가 없다.이 자식은 통합 문서의 자식이다. 네가 원한다면 말이지. :)

2

나는이 방법을 시도했지만 실패했지만 무엇이 빠졌는 지 식별 할 수 있었다. 기본적으로 처음부터 스프레드 시트를 만들 때 기본 통합 문서보기는 없습니다. 그래서 새로운 통합 문서보기를 생성해야합니다.

spreadSheet.WorkbookPart.Workbook = new Workbook(new BookViews(new WorkbookView())); 

그런 다음 시트보기를 만듭니다.

참고 : Excel 통합 문서에서 열을 만들 때 요소는 시퀀스로 만들어야합니다. 순서는

오픈 XML SDK를 즐길 수 있지만, Microsoft는 매우 강력한 문서를 제공하지 않습니다

  • 시트 데이터를 포맷
  • 시트보기

    • 시트 뷰입니다.