2014-01-29 4 views
1

을 사용하여 Excel 파일을 생성하려면 데이터 테이블에서 Excel 파일을 생성하는 데 사용하는 코드 링크를 참조하십시오. 나는 파일을 성공적으로 생성 할 수있다.Microsoft Open SDK 2.0에서 C#

그러나 문제/도전/질문은 다음과 같습니다.

  1. 나는 데이터 형식에 따라 열을 생성하므로 열 값에 날짜가 포함되어 있으면 숫자가 숫자 인 경우 해당 셀 형식은 날짜 (dd/mm/yyy) 여야합니다. 그래서 ...
  2. 나는 셀 값을 생성하는 특정 메서드를 볼 수있는 데이터 형식 당 파일을 생성하려고 시도했다. 그러나 문제는 사용자가 파일을 다운로드 할 때 "Excel에서 읽을 수없는 콘텐츠 'filename'을 (를) 발견했습니다.이 통합 문서의 내용을 복구하겠습니까?"라는 경고 메시지가 나타납니다. 나는 그 경고 메시지가 오기를 원하지 않는다.
  3. 모든 것을 형식없이 텍스트로 쓰고 있다면 경고 메시지없이 파일이 열리고 파일을 다운로드 한 후 사용자가 날짜 또는 숫자 형식으로 각 열을 형식화하려고하면 사용자가 형식/슬라이스 & 주사위를 허용하지 않습니다. 엑셀 파일의 데이터.

참조 : - http://www.codeproject.com/Articles/263106/Export-Tabular-Data-in-CSV-and-Excel-Formats-Throu

는 사람이있는 경우 나 해결책을 알려 주시기 바랍니다.

나는 DocumentFormat.OpenXml.dll

 private Cell CreateTextCell(string header, UInt32 index, string text) 
     { 
      var cell = new Cell {DataType = CellValues.InlineString, CellReference = header + index}; 
      var istring = new InlineString(); 
      var t = new Text {Text = text}; 
      istring.Append(t); 
      cell.Append(istring); 

      return cell; 
     } 

     private Cell CreateDateCell(string header, UInt32 index, DateTime sDate) 
     { 
      Cell cell = new Cell(); 

      cell.DataType = CellValues.Date; 
      cell.CellReference = header + index; 
      cell.StyleIndex = UInt32Value.FromUInt32(14); 
      cell.CellValue = new CellValue { Text = sDate.ToOADate().ToString() }; 
      return cell; 
     } 


     private Cell CreateNumberCell(string header, UInt32 index, string text) 
     { 
      Cell cell = new Cell(); 

      cell.DataType = CellValues.Number; 
      cell.CellReference = header + index; 

      cell.CellValue = new CellValue(text); 

      return cell; 
     } 
+0

제안 사항 : EPPLUS와 같은 것을 사용하십시오. Open XMl SDK의 저수준 배관을 감추는 것은 아주 좋은 일입니다. 나는 둘 다 함께 일했고 내가 EPPLUS를 얼마나 좋아하는지 말할 수 없다; –

+0

은 무료 도구인가? – pm86

+0

예, 라이센스가 개발자에게 아주 좋습니다. –

답변

0

내가 엑셀 ​​파일을 생성 EPPlus .NET 라이브러리로 이동하고 아주 사용하기 쉬운을 사용하고 있습니다.

감사합니다.

0

나는 완벽한 솔루션이 없을 수 있지만 근본 원인을 찾으려면 다음 단계를 시도 할 수 있습니다 : 읽을 수없는 콘텐츠 오류에 대한 이유의

  1. 하나 (이 이것에 대한 많은 이유가 있지만 당신이 점을 고려 데이터 테이블에서만 작성). StyleIndex/Datatype/Cellvalue 형식이 일치하지 않는 경우.
  2. 근본 원인을 식별하려면 다음을 시도해보십시오. 샘플을 생성하고 다음과 함께 셀을 작성하십시오. 번호, 괜찮아요, 하나씩 다음 데이터 형식을 시도하십시오. 다음에는 하나씩 쓰기를 시도합니다. 문제를 일으키는 유형을 정렬하고 정렬하십시오. 형식이 오류없이 괜찮까지

다음 시도는 해당 유형 (온라인 예제를 확인하실 수 있습니다)와 StyleIndex/cellFormat를 변경합니다. 일단 모든 유형에 능숙하다면 전체 Excel에 글쓰기를 시도 할 수 있습니다. OpenXML을 사용하여 새로운 것을 시도하려는 경우에도이 방법을 사용할 수 있습니다 (모든 온라인 문서에 대해 잘 문서화 된 예제가 없기 때문에)

문제를 식별하는 또 다른 방법은 Openxml 생산성 도구를 사용하고 파일.