Web C# 导出Excel 方法总结

方法1:微软推荐服务器需安装Excel型

依赖:

软件:Office Excel 2007-2013

引用:Microsoft Office 14.0 Object Library

1-1.数据准备

 1 //Excel文件名称
 2     string ExcelName = System.DateTime.Now.ToString("yyMMdd") + "退款结算单.xlsx";
 3
 4     /// <summary>
 5     /// 批量退款
 6     /// </summary>
 7     /// <param name="sender"></param>
 8     /// <param name="e"></param>
 9     protected void Button1_Click(object sender, EventArgs e)
10     {
11         DataSet ds = new DataSet();
12
13         DataTable dt1 = new DataTable();
14         dt1.Columns.Add("批次号");
15         dt1.Columns.Add("总金额(元)");
16         dt1.Columns.Add("总笔数");
17
18         DataRow row1 = dt1.NewRow();
19
20         row1 = dt1.NewRow();
21         row1["批次号"] = "20150425001";
22         row1["总金额(元)"] = "0.03";
23         row1["总笔数"] = "1";
24         dt1.Rows.Add(row1);
25
26         ds.Tables.Add(dt1);
27
28         DataTable dt2 = new DataTable();
29         dt2.Columns.Add("商户订单号");
30         dt2.Columns.Add("支付宝交易号");
31         dt2.Columns.Add("退款金额");
32         dt2.Columns.Add("退款备注");
33
34         DataRow row2 = dt2.NewRow();
35
36         row2 = dt2.NewRow();
37         row2["商户订单号"] = "D150418092109-40";
38         row2["支付宝交易号"] = "2015041800001000770049196543";
39         row2["退款金额"] = "0.02";
40         row2["退款备注"] = "导入excel测试";
41         dt2.Rows.Add(row2);
42
43         ds.Tables.Add(dt2);
44
45
46         doExport(ds, Server.MapPath(ExcelName));
47     }

1-2.数据写入

 1  private Microsoft.Office.Interop.Excel.Application _Excel = null;
 2
 3     /// <summary>
 4     /// 将 DataSet 数据写入 _Excel
 5     /// </summary>
 6     /// <param name="ds"></param>
 7     /// <param name="strExcelFileName"></param>
 8     private void doExport(DataSet ds, string strExcelFileName)
 9     {
10         int rowIndex = 1;//当前行数
11         int colIndex = 0;//当前列数
12
13
14         _Excel = new Microsoft.Office.Interop.Excel.Application();
15         _Excel.Application.Workbooks.Add(true);
16
17
18         for (int i = 0; i < ds.Tables.Count; i++)
19         {
20             DataTable table = ds.Tables[i];
21             colIndex = 0;//列初始化
22             // 列标题
23             foreach (DataColumn col in table.Columns)
24             {
25                 colIndex++;
26                 _Excel.Cells[rowIndex, colIndex] = col.ColumnName;
27             }
28
29             // 内容
30             foreach (DataRow row in table.Rows)
31             {
32                 rowIndex++;
33                 colIndex = 0;
34                 foreach (DataColumn col in table.Columns)
35                 {
36                     colIndex++;
37                     _Excel.Cells[rowIndex, colIndex] = "‘" + row[col.ColumnName].ToString();
38                 }
39             }
40
41             rowIndex++;//行+1 防止table又多个情况
42         }
43
44         _Excel.Visible = false;
45         // 保存文件
46         SaveToDisk(strExcelFileName);
47
48         _Excel.Quit();
49         _Excel = null;
50     }

1-3.数据导出

 1   /// <summary>
 2     /// 导出方法
 3     /// </summary>
 4     /// <param name="path">路径</param>
 5     private void SaveToDisk(string path)
 6     {
 7         if (!string.IsNullOrEmpty(path))
 8         {
 9             System.IO.FileInfo info = new FileInfo(path);
10             if (!info.Exists)
11             {
12                 _Excel.ActiveWorkbook.SaveCopyAs(path);
13
14                 /*
15                 微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite
16                 下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。
17                 代码如下:
18                */
19                 Response.ContentType = "text/xml";
20                 Response.AddHeader("Content-Disposition", "attachment;filename=" + ExcelName);
21                 string filename = Server.MapPath(ExcelName);
22                 Response.TransmitFile(filename);
23             }
24             else
25             {
26                 info.Delete();
27                 _Excel.DisplayAlerts = false;
28                 _Excel.AlertBeforeOverwriting = false;
29                 _Excel.ActiveWorkbook.SaveCopyAs(path);
30             }
31         }
32     }
时间: 2024-11-05 13:03:52

Web C# 导出Excel 方法总结的相关文章

导出Excel方法(winform或web)

一.winform形式导出Excel 此方法适用于winform项目导出Excel,使用前需要引用Excel.dll,此处是直接用ds导出Excel,导出方法类GetExport如下: 1 using System; 2 using System.Collections.Generic; 3 using System.Data; 4 using System.IO; 5 using System.Text; 6 using System.Windows.Forms; 7 using Excel;

.Net MVC 导入导出Excel总结(三种导出Excel方法,一种导入Excel方法)

.Net MVC  导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) 通过MVC控制器导出导入Excel文件(可用于java SSH架构) public class ExcelController : Controller { // // GET: /Excel/ Models.zbwxglEntities myMdl = new Models.zbwxglEntities(); /// <summary> /// 第一种方法,利用文件输出流进行读写操作 /// <

ASP.NET常用导出Excel方法汇总

本文转载:http://mattberseth.com/blog/2007/04/export_gridview_to_excel_1.html http://geekswithblogs.net/azamsharp/archive/2005/12/21/63843.aspx 参考:http://forums.asp.net/t/1221467.aspx Export GridView to Excel using System; using System.Data; using System.

C# Datatable导出Excel方法

C# 导出Excel方法  先引用下System.IO;System.data; 具体函数如下: 1 public static bool ExportCSV(DataTable dt, string fileNmae) 2 { 3 bool Msg = false; 4 string con = ""; 5 foreach (DataColumn dc in dt.Columns) 6 { 7 con += dc.ColumnName + ","; 8 } 9 c

.NET导入导出Excel方法总结

最近,应项目的需求,需要实现Excel的导入导出功能,对于Web架构的Excel导入导出功能,比较传统的实现方式是: 1)导入Excel:将Excel文件上传到服务器的某一文件夹下,然后在服务端完成Excel的读取及数据的存储: 2)导出Excel:在服务端生成需要导出的Excel,然后下载到客户端. 其中,文件的上传和下载本文不在详述,以下主要写一些DataTable或DataSet与Excel之间的相互转换. 转换方式多种多样,网上也有很多前辈分享的代码实现,本文也借鉴了前辈的诸多思路及代码

公共POI导出Excel方法--java

最早开始的时候做过一些数据Excel导出的功能,但是到后期每一次导出都需要写一些差不多类似的代码,稍微研究了一下写了个公共的导出方法. 这里用的是POI,然后写成了一个公共类,传入设置好格式的数据,就能弹出下载框. package com.hwt.glmf.common; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; impor

PHP导入导出Excel方法

看到这篇文章的时候,很是惊讶原作者的耐心,虽然我们在平时用的也 有一些,但没有作者列出来的全,写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用 过,csv的就更不用谈了.呵呵.(COM方式不讲了,这种可读的太多了,我也写过利用wps等进行word等的生成之类的文章 )但是在读的时候,只用过一种,具体是什么忘了,要回去翻代码了.因为采用的是拿来主义,记不住.原文地址:http://xinsync.xju.edu.cn/index.p

PHP导入导出Excel方法小结

基本上导出的文件分为两种: 1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已.修改这种文件后再保存,通常会提示你是否要转换成Excel文件.优点:简单.缺点:难以生成格式,如果用来导入需要自己分别编写相应的程序.2:Excel格式,与类Excel相对应,这种方法生成的文件更接近于真正的Excel格式. 如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把$yourStr从utf-8转换成了gb2312:$yourS

Vue实现在前端导出Excel 方法2

也可以去看下我的方法1:https://www.cnblogs.com/yingyigongzi/p/10915382.html ------------------------------------------------------- vue-json-excel:https://github.com/jecovier/vue-json-excel 参考:https://www.cnblogs.com/zengjielin/p/9667476.html npm安装依赖包 cnpm inst