MyXLs 에서 Excel 의 다양한 설정 내 보 내기

8908 단어 Excelmyxls
이 글 은
http://blog.bossma.cn/csharp/myxls-export-excel-option-list/comment-page-1/#comm
MyXLs 는 엑셀 을 조작 하 는 오픈 소스 라 이브 러 리 로 글꼴, 너비, 줄 높이 (BOSSMA 로 구현) 설정, 셀, 테두리, 배경 색상, 데이터 형식, 자동 줄 바 꾸 기, 정렬 방식 등 을 지원 합 니 다. 여러 항목 의 사용 표현 을 통 해 MyXLs 가 간단 한 형식의 Excel 파일 을 만 드 는 데 매우 빠 르 고 편리 하 다 는 것 을 증명 합 니 다.
본 고 는 실례 를 통 해 각종 속성 을 통 해 MyXLs 의 스타일 을 어떻게 설정 하 는 지 상세 하 게 설명 하고 예시 프로그램의 원본 코드 를 첨부 할 것 이다.

        //       
        List<PersonInfo> list = new List<PersonInfo>();
        for (int i = 1; i <= 200; i++)
        {
            PersonInfo person = new PersonInfo()
            {
                RealName = " " + i,
                Gender = (i % 2 == 0 ? " " : " "),
                Age = 20 + (i % 3)
            };

            list.Add(person);
        }

        int recordCount = 200; //         
        int maxRecordCount = 100; //   sheet       
        int sheetCount = 1; // Sheet    

        XlsDocument xls = new XlsDocument();
        xls.FileName = "MyXls-" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";

        //        sheet     
        if (recordCount > maxRecordCount)
        {
            sheetCount = (int)Math.Ceiling((decimal)recordCount / (decimal)maxRecordCount);
        }

        // Sheet    
        XF titleXF = xls.NewXF(); //  xls    XF  ,XF        
        titleXF.HorizontalAlignment = HorizontalAlignments.Centered; //       
        titleXF.VerticalAlignment = VerticalAlignments.Centered; //     
        titleXF.UseBorder = true; //      
        titleXF.TopLineStyle = 1; //      
        titleXF.TopLineColor = Colors.Black; //      
        titleXF.LeftLineStyle = 1; //      
        titleXF.LeftLineColor = Colors.Black; //      
        titleXF.RightLineStyle = 1; //      
        titleXF.RightLineColor = Colors.Black; //      
        titleXF.Font.FontName = "  "; //   
        titleXF.Font.Bold = true; //     
        titleXF.Font.Height = 12 * 20; //    (       1/20 point     )

        //      
        XF columnTitleXF = xls.NewXF(); //  xls    XF  ,XF        
        columnTitleXF.HorizontalAlignment = HorizontalAlignments.Centered; //       
        columnTitleXF.VerticalAlignment = VerticalAlignments.Centered; //     
        columnTitleXF.UseBorder = true; //      
        columnTitleXF.TopLineStyle = 1; //      
        columnTitleXF.TopLineColor = Colors.Black; //      
        columnTitleXF.BottomLineStyle = 1; //      
        columnTitleXF.BottomLineColor = Colors.Black; //      
        columnTitleXF.LeftLineStyle = 1; //      
        columnTitleXF.LeftLineColor = Colors.Black; //      
        columnTitleXF.Pattern = 1; //        。     0,      (  ),1          
        columnTitleXF.PatternBackgroundColor = Colors.Red; //       
        columnTitleXF.PatternColor = Colors.Default2F; //      

        //        
        XF dataXF = xls.NewXF(); //  xls    XF  ,XF        
        dataXF.HorizontalAlignment = HorizontalAlignments.Centered; //       
        dataXF.VerticalAlignment = VerticalAlignments.Centered; //     
        dataXF.UseBorder = true; //      
        dataXF.LeftLineStyle = 1; //      
        dataXF.LeftLineColor = Colors.Black; //      
        dataXF.BottomLineStyle = 1;  //      
        dataXF.BottomLineColor = Colors.Black;  //      
        dataXF.Font.FontName = "  ";
        dataXF.Font.Height = 9 * 20; //      (       1/20 point     )
        dataXF.UseProtection = false; //          ,             
        dataXF.TextWrapRight = true; //     

        //     Sheet
        for (int i = 1; i <= sheetCount; i++)
        {
            //        Sheet  ,     
            //               Sheet ,           (              ,          ,         )
            Worksheet sheet;
            if (sheetCount == 1)
            {
                sheet = xls.Workbook.Worksheets.Add("     ");
            }
            else
            {
                sheet = xls.Workbook.Worksheets.Add("      - " + i);
            }

            //      
            ColumnInfo col0 = new ColumnInfo(xls, sheet); //     
            col0.ColumnIndexStart = 0; //      1 ,   0  
            col0.ColumnIndexEnd = 0; //      1 ,   0  
            col0.Width = 8 * 256; //           1/256    
            sheet.AddColumnInfo(col0); //       sheet  

            //      
            ColumnInfo col1 = new ColumnInfo(xls, sheet); //     
            col1.ColumnIndexStart = 1; //      2 ,   0  
            col1.ColumnIndexEnd = 1; //      2 ,   0  
            col1.Width = 16 * 256; //           1/256    
            sheet.AddColumnInfo(col1); //       sheet  

            //      
            ColumnInfo col2 = new ColumnInfo(xls, sheet); //     
            col2.ColumnIndexStart = 2; //      3 ,   0  
            col2.ColumnIndexEnd = 2; //      3 ,   0  
            col2.Width = 16 * 256; //           1/256    
            sheet.AddColumnInfo(col2); //       sheet  

            //      
            ColumnInfo col3 = new ColumnInfo(xls, sheet); //     
            col3.ColumnIndexStart = 3; //      4 ,   0  
            col3.ColumnIndexEnd = 3; //      4 ,   0  
            col3.Width = 16 * 256; //           1/256    
            sheet.AddColumnInfo(col3); //       sheet  

            //    
            RowInfo rol1 = new RowInfo(); //    
            rol1.RowHeight = 16 * 20; //   
            rol1.RowIndexStart = 3; //       ,   1  
            rol1.RowIndexEnd = (ushort)(maxRecordCount + 2); //      
            sheet.AddRowInfo(rol1); //       sheet  

            //      
            //sheet.Cells.Merge(1, 1, 1, 4);
            MergeArea titleArea = new MergeArea(1, 1, 1, 4); //          (   1 、 1     1 、 4 ) 
            sheet.AddMergeArea(titleArea); //        

            //           
            Cells cells = sheet.Cells;

            // Sheet   ,         1   
            Cell cell = cells.Add(1, 1, "       ", titleXF);
            cells.Add(1, 2, "", titleXF); //                  ,     
            cells.Add(1, 3, "", titleXF); //                  ,     
            cells.Add(1, 4, "", titleXF); //                  ,     
            sheet.Rows[1].RowHeight = 40 * 20; //          

            //     
            cells.Add(2, 1, "  ", columnTitleXF);
            cells.Add(2, 2, "  ", columnTitleXF);
            cells.Add(2, 3, "  ", columnTitleXF);

            //           ,      columnTitleXF   ,                 。
            columnTitleXF.RightLineStyle = 1;
            columnTitleXF.RightLineColor = Colors.Black;
            cells.Add(2, 4, "  ", columnTitleXF);

            sheet.Rows[2].RowHeight = 18 * 20; //          

            //    
            int rowIndex = 3;

            for (int j = 0; j < maxRecordCount; j++)
            {
                //              
                int k = (i - 1) * maxRecordCount + j;

                //     sheet        
                if (k >= recordCount)
                {
                    break;
                }

                //        
                cells.Add(rowIndex, 1, k + 1, dataXF);
                cells.Add(rowIndex, 2, list[k].RealName, dataXF);
                cells.Add(rowIndex, 3, list[k].Gender, dataXF);

                //           ,   Cell         ,                ,        dataXF   
                Cell lastCell = cells.Add(rowIndex, 4, list[k].Age, dataXF);
                lastCell.RightLineStyle = 1;
                lastCell.RightLineColor = Colors.Black;

                //     
                rowIndex++;
            }
        }

        //        Excel  
        xls.Send();
    }

위의 프로그램 은 상세 한 주석 을 썼 으 니 필요 한 친 구 는 자신의 프로그램 을 수정 하 는 것 을 참조 하면 될 것 이다.
첨부 파일 은 MyXls. dll 라 이브 러 리 파일 입 니 다.

좋은 웹페이지 즐겨찾기