Aspose.Cells Excel导出导入

2024-05-31 14:58
文章标签 excel 导出 导入 cells aspose

本文主要是介绍Aspose.Cells Excel导出导入,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

DLL下载地址  http://download.csdn.net/download/u011155153/9957024   

/// <summary>

        /// 将list 导出excel
        /// </summary>
        /// <typeparam name="T">model</typeparam>
        /// <param name="list">需要导出的list数据集</param>
        /// <param name="sheetName">标题</param>
        /// <param name="cols">需要导出的字段</param>
        /// <returns>excel保存的路径</returns>
        public string ExportExecl<T>(IList<T> list, string sheetName, List<Col> cols) where T : class, new()
        {
            string rptPath = PathExt.ConvertAbsolutePath("Report/WaterReport.xls");
            try
            {
                #region Aspose  创建工作簿
                /*创建工作簿*/
                Workbook workbook = new Workbook(rptPath);
                Worksheet sheet = workbook.Worksheets[0]; //工作表 
                Cells cells = sheet.Cells;//单元格
                //标题
                Style title = workbook.Styles[workbook.Styles.Add()];
                title.HorizontalAlignment = Aspose.Cells.TextAlignmentType.Center;//字体居中
                //  cells.Merge(0, 0, 1, cols.Count);//合并单元格     前两个为单元格坐标 第三个参数为合并多少行,第四个参数合并多少列  
                title.Font.Size = 25;
                title.Font.IsBold = true;//粗体   
                // 表头
                Style header = workbook.Styles[workbook.Styles.Add()];
                header.HorizontalAlignment = Aspose.Cells.TextAlignmentType.Center;//字体居中
                header.Font.Size = 14;
                header.Font.IsBold = true;//粗体   
                header.ForegroundColor = System.Drawing.Color.FromArgb(204, 204, 204);//设置背景色 可以参考颜色代码对照表  
                header.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;//应用边界线 左边界线  
                header.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin; //应用边界线 右边界线  
                header.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;//应用边界线 上边界线  
                header.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin;//应用边界线 下边界线  
                //边框
                Style border = workbook.Styles[workbook.Styles.Add()];
                border.HorizontalAlignment = Aspose.Cells.TextAlignmentType.Center;//字体居中
                border.IsTextWrapped = true;//单元格内容自动换行  
                border.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;//应用边界线 左边界线  
                border.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin; //应用边界线 右边界线  
                border.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;//应用边界线 上边界线  
                border.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin;//应用边界线 下边界线  
                #endregion


                #region Aspose  样式设置事例


                //Aspose.Cells.Style style1 = workbook.Styles[workbook.Styles.Add()];
                style1.Pattern = Aspose.Cells.BackgroundType.Solid;//单元格的线:实线  
                //style1.HorizontalAlignment = Aspose.Cells.TextAlignmentType.Center;//字体居中  
                //style1.Font.Name = "宋体";//文字字体  
                //style1.Font.Size = 25;//文字大小  
                //style1.IsTextWrapped = true;//单元格内容自动换行  
                style1.ForegroundColor = System.Drawing.Color.FromArgb(50, 205, 50);//设置背景色 可以参考颜色代码对照表  
                //style1.Font.IsBold = true;//粗体  
                style1.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;//应用边界线 左边界线  
                style1.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin; //应用边界线 右边界线  
                style1.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;//应用边界线 上边界线  
                style1.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin;//应用边界线 下边界线  
                //cells[row, 0].PutValue(sheetName);
                //cells[row, 0].SetStyle(title);
                //cells.SetColumnWidth(0, 30);//设置列宽  
                //cells.Merge(0, 0, 1, cols.Count);//合并单元格     前两个为单元格坐标 第三个参数为合并多少行,第四个参数合并多少列
                //cells.SetRowHeight(0, 38);//设置行高   
                #endregion


                int row = 0;
                cells[row, 0].PutValue(sheetName);
                cells[row, 0].SetStyle(title);
                cells.SetColumnWidth(0, 30);//设置列宽  
                //生成列名
                row++;
                for (int i = 0; i < cols.Count; i++)
                {
                    cells[row, i].PutValue(cols[i].Name);
                    cells[row, i].SetStyle(header);
                }
                //生成数据  
                if (list != null && list.Count > 0)
                {
                    for (int i = 0; i < list.Count; i++)
                    {
                        row++;
                        for (int j = 0; j < cols.Count; j++)

                        {

    cells[row, j].PutValue(typeof(T).GetProperty(Code).GetValue(list[i]));

                            cells[row, j].SetStyle(border);
                        }
                    }
                }


                #region 验证是否存在文件夹
                string path = "/Upload/";
                string rootPath = PathExt.ConvertAbsolutePath(path);
                if (!System.IO.Directory.Exists(rootPath))
                {
                    Directory.CreateDirectory(rootPath);
                } 
                #endregion


                string FileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
                string savePath = PathExt.GetTempFile(rootPath, FileName);
                workbook.Save(savePath);
                return "Upload/" + FileName;
            }
            catch (Exception e)
            {
                return " IListToExcel: " + e.Message;
            }
        }




        /// <summary>
        /// 导入excel 返回DataTable
        /// </summary>
        /// <param name="strFileName">excel文件地址</param>
        /// <returns>DataTable</returns>
        public System.Data.DataTable ReadExcel(String strFileName)
        {
            Workbook book = new Workbook();
            book.Open(strFileName);
            Worksheet sheet = book.Worksheets[0];
            Cells cells = sheet.Cells;
            return cells.ExportDataTableAsString(0, 0, cells.MaxDataRow + 1, cells.MaxDataColumn + 1, true);

        }

public class Col
    { /// <summary>
        /// 中文名(显示名称)
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// 英文(数据库查询字段)
        /// </summary>
        public string ColName { get; set; }
    }

   List<Col> list = new List<Col>() {
                new Col() { Name = "popedomId", ColName = "popedomId" },
                new Col() { Name = "workIngId", ColName = "workIngId" },
                new Col() { Name = "workingSeatId", ColName = "workingSeatId" },
                new Col() { Name = "questionTypeId", ColName = "questionTypeId" },
                new Col() { Name = "questionId", ColName = "questionId" },
                new Col() { Name = "shiftId", ColName = "shiftId" },
                new Col() { Name = "classId", ColName = "classId" },
                new Col() { Name = "solutionId", ColName = "solutionId" },
                new Col() { Name = "userId", ColName = "userId" } 
            };

 public string AA()
        {
            AsposeExportExcel excel = new AsposeExportExcel();
            string url = excel.ExportExecl<VW_WorkNote>("需要导出的List", "sheetName", list);
            return url;
        }


这篇关于Aspose.Cells Excel导出导入的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1018248

相关文章

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

Java实现TXT文件导入功能的详细步骤

《Java实现TXT文件导入功能的详细步骤》在实际开发中,很多应用场景需要将用户上传的TXT文件进行解析,并将文件中的数据导入到数据库或其他存储系统中,本文将演示如何用Java实现一个基本的TXT文件... 目录前言1. 项目需求分析2. 示例文件格式3. 实现步骤3.1. 准备数据库(假设使用 mysql

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心