mvc使用Chsword.Excel2Object导出和导入数据

Chsword.Excel2Object导出原理:

将数据写入类似UserOut的类中,然后使用Chsword.Excel2Object中提供的方法直接导出数据。

导出数据控制器程序:

using Chsword.Excel2Object;
public ActionResult export(int role=10)
        {
            List<tb_user> ulist = .Where(c => c.user_role == role).ToList();

            List<UserOut> rtnlist = new List<UserOut>();
            foreach (var item in ulist)
            {
                rtnlist.Add(new UserOut { addtime = item.addtime, id = item.id, username = item.username, truename=item.truename, telephone=item.telephone, qq=item.qq, email=item.email,
                    user_money=item.user_money,blocked_money=item.blocked_money
                });
            }
//导出数据
            var exporter = new ExcelExporter();
            string fileName = "UserOut" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
            string filePath = Server.MapPath("~/upload/temp/") + fileName;

            return File(new FileStream(filePath, FileMode.Open), "application/octet-stream", Server.UrlEncode(fileName));
        }
tb_user实体类程序:
public partial class tb_user
    {

        /// <summary>
        /// 主键
        /// </summary>
        public int id { get; set; }

        /// <summary>
        /// 登陆账号
        /// </summary>
        public string username { get; set; }

        /// <summary>
        /// 登陆密码
        /// </summary>
        public string password { get; set; }

        /// <summary>
        /// 盐值
        /// </summary>
        public string salt { get; set; }

        /// <summary>
        /// 真实姓名
        /// </summary>
        public string truename { get; set; }

        /// <summary>
        /// 联系方式
        /// </summary>
        public string telephone { get; set; }

        /// <summary>
        /// qq号
        /// </summary>
        public string qq { get; set; }

        /// <summary>
        /// 邮箱
        /// </summary>
        public string email { get; set; }

        /// <summary>
        /// 注册时间
        /// </summary>
        public DateTime addtime { get; set; }

        /// <summary>
        /// 会员可用余额
        /// </summary>
        public decimal user_money { get; set; }

        /// <summary>
        /// 会员 头像
        /// </summary>
        public string smallimage { get; set; }

        /// <summary>
        /// 会员状态
        /// 1 正常
        /// 0 待审核
        /// 2 禁用
        /// </summary>
        public int status { get; set; }

        /// <summary>
        /// 会员冻结金额
        /// </summary>
        public decimal blocked_money { get; set; }

        /// <summary>
        /// 会员角色
        /// 10 普通会员 20 经济商会员
        /// </summary>
        public int user_role { get; set; }

        /// <summary>
        /// 提成率 0.003
        /// </summary>
        public decimal Percentage { get; set; }

        /// <summary>
        /// 洲
        /// </summary>
        public string areaP { get; set; }
        /// <summary>
        /// 国家或地区
        /// </summary>
        public string areaC { get; set; }

    }
UserOut导出类:
using Chsword.Excel2Object;
using System;

namespace Web
{
    public class UserOut
    {
        public int id { get; set; }

        /// <summary>
        /// 登陆账号
        /// </summary>
        [ExcelTitle("用户名称", Order = 1)]
        public string username { get; set; }

        /// <summary>
        /// 真实姓名
        /// </summary>
        [ExcelTitle("真实姓名", Order = 2)]
        public string truename { get; set; }

        /// <summary>
        /// 联系方式
        /// </summary>
        [ExcelTitle("联系方式", Order = 3)]
        public string telephone { get; set; }

        /// <summary>
        /// qq号
        /// </summary>
        [ExcelTitle("证件号", Order =4)]
        public string qq { get; set; }

        /// <summary>
        /// 会员余额
        /// </summary>
        [ExcelTitle("会员余额", Order = 5)]
        public decimal user_money { get; set; }

        /// <summary>
        /// 冻结金额
        /// </summary>
        [ExcelTitle("冻结金额", Order = 6)]
        public decimal blocked_money { get; set; }

        /// <summary>
        /// 邮箱
        /// </summary>
        [ExcelTitle("邮箱", Order = 7)]
        public string email { get; set; }

        /// <summary>
        /// 注册时间
        /// </summary>
        [ExcelTitle("注册时间", Order = 8)]
        public DateTime addtime { get; set; }

    }
}

二、导出数据:

原理和导出数据相反。

 var importer = new ExcelImporter();
                    IEnumerable<UserImpViewModel> result = importer.ExcelToObject<UserImpViewModel>("excel路径");
                    var count = result.Count();
UserImpViewModel类:
 public class UserImpViewModel
    {
        [ExcelTitle("邀请人")]
        public string commandName { get; set; }

        //[ExcelTitle("登录名")]
        //public string username { get; set; }
        /// <summary>
        /// 真实姓名
        /// </summary>
        [ExcelTitle("真实姓名")]
        public string truename { get; set; }

        [ExcelTitle("电话")]
        public string telePhone { get; set; }

        [ExcelTitle("身份证")]
        public string personCard { get; set; }

        [ExcelTitle("邮箱")]
        public string email { get; set; }

    }

注意在使用Chsword.Excel2Object的时候 需要引用其他的dll才能正常使用。

时间: 2024-12-18 07:50:23

mvc使用Chsword.Excel2Object导出和导入数据的相关文章

利用PL/SQL从Oracle数据库导出和导入数据

转自:https://www.jb51.net/article/109768.htm 本文实例为大家分享了使用PL/SQL从Oracle数据库导出和导入数据的方法,供大家参考,具体内容如下 1.导出数据: 方式一:工具—>导出用户对象—>导出.sql文件 注:这种方式导出的是建表语句和存储过程语句 方式二:工具—>导出表 注: 这里是导出表的结构和数据 第一种方式导出.dmp格式的文件,.dmp是二进制文件,可跨平台,还能包含权限,效率不错,用的最为广泛. 第二种方式导出.sql格式的文

mysql导出和导入数据mysqldump,source

导出数据库(mysqldump): 导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -uroot -pgameol32! lottery >/home/lottery.sql(输入密码后即可开始导出数据库) (如果导出单张表,在数据库名后面输入表名即可) 将导出的数据库.sql文件同步到需导入的服务器的上(rsync): rsync -av /home/lottery.sql 10.10.86.100:/home/ 目标服务器需要开启fire

Oracle Data Pump 导出和导入数据

Data pump export/import(hereinafter referred to as Export/Import for ease of reading)是一种将元数据和数据导出到系统文件集/从系统文件集导入数据的服务端工具;导出的文件可以移动到其它服务器上,但只能使用impdp导入;使用前要先建立目录(directory)和授权: conn / as sysdba CREATE DIRECTORY PUMP_DIR AS '/u01/backup'; 创建后即可查询出目录信息,

使用MongoDB命令工具导出、导入数据

Windows 10家庭中文版,MongoDB 3.6.3, 前言 在前面的测试中,已经往MongoDB的数据库中写入了一些数据.现在要重新测试程序,数据库中的旧数据需要被清理掉,可是,又想保存之前写入的数据,于是,就需要导出数据(或备份)了--使用MongoDB提供的mongoexport命令.顺便测试了导出操作的反向操作--导入数据,使用mongoimport命令. 注意,MongoDB的bin目录已经添加到Windows环境变量path中了. 那么, 两个命令怎么使用呢?使用 命令 + -

navicat怎么导出和导入数据表

1.选中要导出的数据表,右击,然后点击"导出向导". 2.点击sql脚本文件(*sql)->点击下一步. 3.点击保存位置->下一步->保存 ****************************************************************************************** 如果要导出整个数据库则: 1.右击整个数据库->转储sql文件 2.选择保存位置->保存 ***********************

用php导入10W条+ 级别的csv大文件数据到mysql。导出10W+级别数据到csv文件

转自:http://blog.csdn.net/think2me/article/details/12999907 1. 说说csv 和 Excel 这两者都是我们平时导出或者导入数据一般用到的载体.两者有什么区别呢?csv 格式更兼容一点.那么共同点都是GBK格式的,非UTF8.所以我们上传文件的时候,老是出现乱码,就是编码问题没有转好导致. 2. 推荐的几种方法 1. 函数 fgetss($handel);  返回字符串.它就是strip_tags(fget($handel))的组合读取cs

oracle数据库数据导出和导入

oracle的客户端里面的bin下面有两个可执行文件,名称分别为exp.exe和imp.exe. 他俩的用途就是导出和导入数据用的. 全库 导出:exp 用户名/密码@数据库名 full=y file=c:xxxx.dmp owner=数据库用户 导入:imp 用户名/密码@数据库名 full=y file=c:xxxx.dmp owner=数据库用户 单表 导出:exp 用户名/密码@数据库名 grants=y tables=table_name file=c:xxx.dmp owner=数据

java使用POI操作excel文件,实现批量导出,和导入

一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Excel 95及以后的版本,即可操作后缀为 .xls 和 .xlsx两种格式的excel. POI全称 Poor Obfuscation Implementation,直译为"可怜的模糊实现",利用POI接口可以通过JAVA操作Microsoft office 套件工具的读写功能.官网:htt

Oracle的导出和导入

(摘自:http://www.cnblogs.com/mchina/archive/2012/09/12/2678093.html) 数据库的备份操作是在整个项目运行中最重要的工作之一. 一.数据的导出和导入 数据的导出和导入是针对于一个用户的备份操作,可以按照如下的方式完成: 1.  数据的导出 在硬盘上建立一个文件夹:c:\backup: 输入exp指令: 输入用户名和密码: 设置导出文件的名称:导出文件: EXPDAT.DMP: 2.  数据的导入 先将表删除干净: 进入到导出文件所在的文