이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 210205|회답: 67

[WebAPI] WebAPI는 리스트 데이터를 엑셀 테이블 파일로 내보냅니다

  [링크 복사]
게시됨 2018. 7. 16. 오후 10:26:35 | | | |
C#을 사용해 엑셀 테이블을 내보내려면 NPOI를 사용해야 하며, 이는 다음과 같이 소개됩니다:

NPOI는 POI 버전 3.x 위에 구축된 프로그램을 의미하며, Office 없이도 Word 또는 Excel 문서를 읽고 쓸 수 있습니다.
NPOI는 Excel과 WORD와 같은 Microsoft OLE2 컴포넌트 문서를 읽고 쓰기 위한 오픈소스 C# 프로젝트입니다.

인터넷에 있는 많은 코드는 서버에 저장되어 물리 파일로 변환된 후 내보내기(또는 다운로드 링크)가 필요합니다.이 게시물의 코드는 물리적 파일을 저장할 필요가 없으며, 목록 데이터는 직접 내보내고 다운로드할 수 있습니다

먼저 렌더링을 살펴보겠습니다:


브라우저를 사용해 :http://localhost:63096/api/download/test 인터페이스 주소에 접속해 엑셀 파일을 다운로드합니다.

다운로드가 완료되면 test.xls을 열면 정상적으로 읽을 수 있습니다! 아래에 나와 있습니다:



목록 데이터와 코드 준비:



webapi 코드는 다음과 같습니다:



EntityListToExcel2003 메서드는 다음과 같습니다:





이전의:Asp.net MVC 번들은 모든 CSS 파일을 함께 패키징합니다
다음:VS2017 브라우저 입력 경로 디버깅 종료
게시됨 2019. 1. 7. 오전 11:22:53 |
아주 좋아요, 저는 이 제네릭을 사용해요
/// <summary>
        객체 집합을 엑셀로 내보내기
        /// </summary>
        <typeparam name="T"> 내보내고 싶은 객체 유형</typeparam>
        <param name="objList" > 객체 집합</param>
        <param name="FileName"> 내보낸 파일 이름</param>
        <param name="columnInfo"> column name information</param>
        public void ListToExcel<T>(List<T> objList, string FileName, Dictionary<string, string> columnInfo)
        {
            if (columnInfo.Count == 0) { return; }
            if (objList.Count == 0) { return; }
            EXCEL HTML 생성하기
            문자열 excelStr = "";
            Type myType = objList[0]. GetType();
            반사를 바탕으로 표시할 속성은 전달된 속성 이름 정보로부터 얻습니다
            List<System.Reflection.PropertyInfo> myPro = new List<System.Reflection.PropertyInfo>();
            foreach (columnInfo.Keys의 cName 문자열)
            {
                System.Reflection.PropertyInfo p = myType.GetProperty(cName);
                만약 (p != null)
                {
                    myPro.Add(p);
                    excelStr += columnInfo[cName] + "\t";
                }
            }
            사용 가능한 속성이 없으면 종료됩니다
            if (myPro.Count == 0) { return; }
            excelStr += "\n";
            foreach (ObjList in ObjList in T obj)
            {
                foreach (System.Reflection.PropertyInfo p in myPro)
                {
                    excelStr += p.GetValue(obj, null) + "\t";
                }
                excelStr += "\n";
            }
            엑셀 출력
            HttpResponse rs = System.Web.HttpContext.Current.Response;
            루피. ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            루피. AppendHeader("Content-Disposition", "attachment; filename=" + FileName);
            루피. ContentType = "application/ms-excel";
            루피. 쓰기(excelStr);
            루피. 끝();
        }
 집주인| 게시됨 2019. 7. 31. 오후 1:22:31 |
chenxingen168 2019-5-13 22:12에 게시됨
좋은 코드입니다, 공유해 주셔서 감사합니다

아니에요
게시됨 2019. 6. 18. 오후 2:39:34 |
게시됨 2018. 7. 20. 오전 8:09:57 |
산과 강

점수

참가자 수1MB-1 기여하다-1 무너지다 이유
쿠베르튜 -1 -1 물을 붓지 마세요. 답글 게시물의 질을 향상시키는 것은 모든 회원의 의무입니다.

모든 평점 보기

게시됨 2018. 7. 25. 오전 9:23:54 |
한번 보세요, 더 좋아요
게시됨 2018. 7. 25. 오전 9:27:42 |
꽤 괜찮아요
7
게시됨 2018. 8. 22. 오후 3:56:01 |
EntityListToExcel2003 메서드 내용
게시됨 2018. 9. 5. 오후 4:24:07 |
물, 물, 물,

점수

참가자 수1MB-1 기여하다-1 무너지다 이유
쿠베르튜 -1 -1 물을 붓지 마세요. 답글 게시물의 질을 향상시키는 것은 모든 회원의 의무입니다.

모든 평점 보기

게시됨 2018. 9. 6. 오전 9:30:18 |
좋아요 하나, 표시해 두고, 앞으로 활용하세요!
게시됨 2018. 9. 19. 오후 3:05:17 |
매우 유용하네요, 감사합니다
게시됨 2018. 9. 27. 오전 8:56:58 |
오너를 지원해 업데이트 받아주세요~
게시됨 2018. 9. 27. 오전 9:14:28 |
알아 봐
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com