BN089-BS开发框架MVC4版/source20131023/Zephyr.Net/Zephyr.Utils/Document/Excel/NPOI/NPOIHelper.cs

(开头部分) 5KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Zephyr.Utils.NPOI.HSSF.UserModel;
using Zephyr.Utils.NPOI.HSSF.Util;
using Zephyr.Utils.NPOI.SS.UserModel;
using System.Collections;

namespace Zephyr.Utils.NPOI
{
    public class NPOIHelper
    {
        public static Stream ListToExcel(object list, Dictionary<string, string> titles, bool IsExportAllCol)
        {
            const int startIndex = 0;
            var fields = titles.Keys.ToList();
            var workbook = new HSSFWorkbook();
            var sheet = workbook.CreateSheet("sheet1");
            sheet.DefaultRowHeight = 200 * 20;
            var row = sheet.CreateRow(startIndex);

            var headStyle = GetHeadStyle(workbook);
            EachHelper.EachListHeader(list, (i, name, type) =>
            {
                if (!fields.Contains(name))
                {
                    if (IsExportAllCol)
                        fields.Add(name);
                    else
                        return;
                }
                var cellIndex = fields.IndexOf(name) + startIndex;
                var cell = row.CreateCell(cellIndex);
                cell.SetCellValue(titles.ContainsKey(name)?titles[name]:name);
                cell.CellStyle = headStyle;
                sheet.AutoSizeColumn(cellIndex);
            });
            
            EachHelper.EachListRow(list, (rowIndex, dataRow) => 
            {
                row = sheet.CreateRow(rowIndex + 1);
                EachHelper.EachObjectProperty(dataRow, (i, name, value) => 
                {
                    if (!fields.Contains(name))
                    {
                        if (IsExportAllCol)
                            fields.Add(name);
                        else
                            return;
                    }
                    var cellIndex = fields.IndexOf(name) + startIndex;
                    var dataStyle = GetDataStyle(workbook);
                    var cell = row.CreateCell(cellIndex);
                    cell.CellStyle = dataStyle;
                    switch ((value??string.Empty).GetType().Name.ToLower())
                    {
                        case "int32":
                        case "int64":
                        case "decimal":
后面还有 73 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。