.Net生成导出Excel
概述
在做.Net web开发的过程中经常需要将查出的数据导成Excel表返给用户,方便用户对数据的处理和汇总。这里我将导出Excel表格的代码做一个总结,这也是我项目中经常用到的,代码简单易懂,使用方便,分享给大家。
1、查询数据,数据需要是datatable
后端代码实例,先给Excel表头转化为中文描述
public OperationResult CreateExportExcel(Model queryModel)
{
string errorMsg;
DataSet ds = GetService.RunPRC_ConfirmCompSKD(queryModel, out errorMsg);
if (!string.IsNullOrEmpty(errorMsg))
{
return new OperationResult("", errorMsg);
}
if (ds.Tables.Count != )
{
return new OperationResult("", "查询为空");
}
DataTable dt = ds.Tables[];
dt.Columns.Remove(dt.Columns["DeptID"]);
dt.Columns.Remove(dt.Columns["SearchKey"]);//删除不需要的列
dt.Columns["FYear"].ColumnName = "年份";
dt.Columns["FMonth"].ColumnName = "月份";
dt.Columns["FranchiseeNo"].ColumnName = "编号";
dt.Columns["FranchiseeName"].ColumnName = "名称";
dt.Columns["DeptName"].ColumnName = "维护部门";
dt.Columns["FContractNo"].ColumnName = "合同编号";
dt.Columns["FDate1"].ColumnName = "起租日期";
dt.Columns["FDate2"].ColumnName = "止租日期";
dt.Columns["FNumber"].ColumnName = "收款单编号";
dt.Columns["FAmount"].ColumnName = "收款金额";
dt.Columns["FDate"].ColumnName = "收款日期";
dt.Columns["SkdNo"].ColumnName = "已核销收款单编号";
dt.Columns["SkdAmount"].ColumnName = "已核销收款金额";
dt.Columns["SkdDate"].ColumnName = "已核销收款日期";
return Export(dt, "收款单-");
}
/// <summary>
/// 生成导出临时文件
/// </summary>
/// <param name="dt"></param>
/// <param name="preName"></param>
/// <returns></returns>
private OperationResult Export(DataTable dt, string preName)
{ dt.TableName = preName + DateTime.Now.ToString("yyyyMMddHHmmss"); string baseDictory = AppDomain.CurrentDomain.BaseDirectory; string dirctory = string.Format("{0}Doc", baseDictory); if (!Directory.Exists(dirctory))
{
Directory.CreateDirectory(dirctory);
} string path = string.Format("{1}Doc/{0}.xls", dt.TableName, baseDictory); string serverPath = path; if (File.Exists(serverPath))
{
File.Delete(serverPath);
} ExcelUtil.SaveAsExcel(serverPath, preName, dt); bool flag = File.Exists(serverPath); if (!flag)
{
return new OperationResult("", "生成失败");
} var result = new OperationResult("", "success")
{
returnURL = string.Format("/Doc/{0}", Path.GetFileName(serverPath))
}; return result;
}
public class OperationResult
{
public OperationResult()
{
} public OperationResult(string errCode, string errMsg)
{
ErrorCode = errCode;
ErrorMsg = errMsg;
} /// <summary>
/// 返回状态
/// </summary>
public bool Flag { get; set; } /// <summary>
/// 返回码
/// </summary>
public string ErrorCode { get; set; } /// <summary>
/// 返回的URL
/// </summary>
public string returnURL { get; set; } /// <summary>
/// 返回消息
/// </summary>
public string ErrorMsg { get; set; }
public object ObjectData { get; set; }
public object rows { get; set; } public int total { get; set; }
/// <summary>
/// 页脚
/// </summary>
public object footer { get; set; } }
前端代码实例:
function outExcel() {
var queryUrl = "/Statistics/D_IComeData/CreateD_MonthIncomeExportExcel";
var queryModel = form2Json("searchform");
$.ajax({
type: "POST",
url: queryUrl,
data: queryModel,
dataType: "JSON",
success: function (result) {
var row = result.rows;
if (Util.isValidResult(row)) {
if (row.hasOwnProperty("returnURL") && row.returnURL != null) {
OpenFrameUrl(row.returnURL);
}
}
}
});
}
function OpenFrameUrl(url) {
var form = document.createElement("form");
form.id = "outExcelResult";
form.action = url;
form.method = "get";
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
};
.Net生成导出Excel的更多相关文章
- java使用poi生成导出Excel(新)
导出样式: java代码: import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStre ...
- 如何用poi生成导出excel
import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.Sheet; import java. ...
- java后台动态生成导出excel
p ublic void export(List<WechatUser> wechatUserList, HttpServletResponse response) throws IOEx ...
- asp.net core webapi 生成导出excel
/// <summary> /// 下载订单 /// </summary> /// <param name="model"></param ...
- 022医疗项目-模块二:药品目录的导入导出-对XSSF导出excel类进行封装
资源全部来源于传智播客. 好的架构师写的程序,就算给刚入门的新手看,新手一看就知道怎么去用.所以我们要对XSSF导出excel类进行封装.这是架构师的工作,但我们也要知道. 我们写一个封装类: 这个类 ...
- 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续3篇-导出时动态生成多Sheet EXCEL)
ExcelUtility 类库经过我(梦在旅途)近期不断的优化与新增功能,现已基本趋向稳定,功能上也基本可以满足绝大部份的EXCEL导出需求,该类库已在我们公司大型ERP系统全面使用,效果不错,今天应 ...
- 根据模板导出Excel报表并生成多个Sheet页
因为最近用报表导出比较多,所有就提成了一个工具类,本工具类使用的场景为 根据提供的模板来导出Excel报表 并且可根据提供的模板Sheet页进行复制 从而实现多个Sheet页的需求, 使用本工具类时 ...
- 懒人小工具:自动生成Model,Insert,Select,Delete以及导出Excel的方法
在开发的过程中,我们为了节约时间,往往会将大量重复机械的代码封装,考虑代码的复用性,这样我们可以节约很多时间来做别的事情.最近跳槽到一节webform开发的公司,主要是开发自己公司用的ERP.开始因为 ...
- 懒人小工具:T4自动生成Model,Insert,Select,Delete以及导出Excel的方法
之前写了篇文章,懒人小工具:[自动生成Model,Insert,Select,Delete以及导出Excel的方法](http://www.jianshu.com/p/d5b11589174a),但是 ...
随机推荐
- 6_bootstrap之导航条|轮播图|排版|表单元素|分页
8.导航条 BootStrap已经提供了完整的导航条实例,通常情况下,我们仅需进行简单修改即可使用. 帮助手册位置:组件-------导航条 9.轮播图 BootStrap已经提供了完整的轮播图实例, ...
- Windows环境下为PHP5.6安装redis扩展和memcached扩展
一.php安装redis扩展 1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本 2.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2 ...
- SQL中like的用法
操作符LIKE利用通配符把一个值与类似的值进行比较,通配符有两个: 1.百分号(%): 代表零个.一个或多个字符 2.下划线(_):代表一个数字或字符 下面的条件匹配任何以200开头的值 WHERE ...
- window.location 属性
属性 含义 值 protocol: 协议 "http:" hostname: 服务器的名字 "b.a.com" port: 端口 "88" ...
- idea提示,格式化代码,清除不使用的包快捷键,maven自动导jar包
一.提示快捷键 idea默认快捷键是ctrl+space,通常和别的软件快捷键冲突,所以将快捷键修改为alt+/ 二.格式化快捷键ctrl+alt+l,通常和qq.tim快捷键冲突,请修改qq或者ti ...
- final关键字的简单理解
final可以修饰类,方法,变量. 1.final修饰的类,不可以被继承. 2.final修饰方法,可以把方法锁定,以防任何继承类修改它的含义. 3.fianl修饰的变量,如果是基本数据类型的变量,则 ...
- Five reasons phosphorene may be a new wonder material
A material that you may never have heard of could be paving the way for a new electronic revolution. ...
- 可用于nodejs的SuperAgent(ajax API)
简单示例: import request from 'superagent';//引用声明 request.post(api) .withCredentials()//跨域 .end((err, re ...
- Shiro01 功能点框图、架构图、身份认证逻辑、身份认证代码实现
基本功能点 功能点框图 功能点说明 1.Authentication:身份认证/登录,验证用户是不是拥有相应的身份: 2.Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个 ...
- DALSA网口线扫相机SDK开发详解例程(C#版)
首先吐槽一句,官方的demos写的真的不好,坑爹啊.对于小白来说,开发官方demos为我所用太难了.为什么呢?因为它Dalsa的DALSA.SaperaLT.SapClassBasic.dll中,不仅 ...