c# 导出数据

页面代码 :

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SaleslDailyReport.aspx.cs"     Inherits="DataReport.OilDistribution.SaleslDailyReport" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title>销售日报</title>

<script src="../Scripts/jquery-1.6.2.min.js" type="text/javascript"></script>

<script src="../Scripts/boot.js" type="text/javascript"></script>

</head>

<body>

<form id="form1" runat="server">

<div>

<div class="mini-toolbar" style="padding: 2px; border-bottom: 0;">
            <table style="width: 100%; border: 1px;">
                <tr>
                    <td align="right" height="24" width="100px;">
                        时间:
                    </td>
                    <td align="left">
                        <input type="text" id="txtCreTime" format="yyyy-MM-dd" class="mini-datepicker" showtime="true" />
                    </td>
                    <td align="right">
                        <a class="mini-button" iconcls="icon-download" onclick="Search()">查询</a>
                    </td>
                    <td align="left">
                        <a class="mini-button" iconcls="icon-download" onclick="down()">下载</a>
                    </td>
                </tr>
            </table>
        </div>

<table style="width: 100%; border: 1px;">

<tr>

<td>

</td>

<td align="center">

<h3> 销售日报</h3>

</td>

<td align="right" style="width: 200px;"> 单位:万吨 </td>

</tr>         </table>

<div id="datagrid1" class="mini-datagrid" style="width: 100%; height: 600px;" showpager="false">

<div property="columns">

<div field="Alias" width="120" headeralign="center" allowsort="true" align="center">    单位

</div>

<div header="当日销售" headeralign="center">

<div property="columns">

<div field="dxx" width="100" allowsort="true" headeralign="center" align="center">                             小计</div>

<div field="dxq" width="100" allowsort="true" headeralign="center" align="center">                             汽油</div>

<div field="dxc" width="100" allowsort="true" headeralign="center" align="center">                             柴油</div>

<div field="dxm" width="100" allowsort="true" headeralign="center" align="center">                             煤油</div>

</div>

</div>

<div header="月累计" headeralign="center">

<div property="columns">

<div field="ylx" width="100" allowsort="true" headeralign="center" align="center">                             小计</div>

<div field="ylq" width="100" allowsort="true" headeralign="center" align="center">                             汽油</div>

<div field="ylc" width="100" allowsort="true" headeralign="center" align="center">                             柴油</div>

<div field="ylm" width="100" allowsort="true" headeralign="center" align="center">                             煤油</div>

</div>

</div>

<div header="当日库存" headeralign="center">

<div property="columns">

<div field="dkx" width="100" allowsort="true" headeralign="center" align="center">                             小计</div>

<div field="dkq" width="100" allowsort="true" headeralign="center" align="center">                             汽油</div>

<div field="dkc" width="100" allowsort="true" headeralign="center" align="center">                             柴油</div>

<div field="dkm" width="100" allowsort="true" headeralign="center" align="center">                             煤油</div>

</div>

</div>

</div>

</div>

</div>

<iframe id="exportIFrame" style="display: none;"></iframe>

</form>

</body>

</html>

<script type="text/javascript">
    mini.parse();

var grid = mini.get("datagrid1");

//下载   导出数据

function down() {

var time = mini.get("txtCreTime").getFormValue();

var url = bootPATH + "../OilDistribution/AjaxReport.ashx?method=ExportExcel&time=" + time;

var exportIFrame = document.getElementById("exportIFrame");

exportIFrame.src = url;

}

</script>

一般处理程序代码

protected override object processQuery(HttpContext context, out bool hasError)
        {
            hasError = false;
            string method = context.Request["method"];
            switch (method)
            {

case "ExportExcel": //下载(销售日报导出)
                    return ExportDataToExcel(context, out hasError);

}
        }

#region 下载

/// <summary>

/// 下载(导出销售日报)

/// </summary>

/// <param name="context"></param>

/// <param name="hasError"></param>

/// <returns></returns>

private object ExportDataToExcel(HttpContext context, out bool hasError)

{

string result = "";

hasError = false;

try      {

ReportState32BLL sbll = new ReportState32BLL();

string time = context.Request["time"];

//获得要导出的数据信息(销售日报)

DataTable data = sbll.GetSaleslDailyTable(time);

if (data != null)

{

string fileName = "销售日报(" + DateTime.Now.ToString("yyyyMMddhhmmss") + ").xlsx";

string[] columnName = { "序号", "单位", "小计", "汽油", "柴油", "煤油", "小计", "汽油", "柴油", "月累计煤油", "小计", "汽油", "柴油", "煤油" };

string tempDir = context.Server.MapPath("~/DownLoadFiles/");

//临时存放目录

string tempXls = string.Format("{0}{1}", tempDir, fileName);

SaveFile(data, fileName, tempDir, columnName);

ExportToExcel(context, tempXls);

result = "导出成功";

}

else

{

result = "没有要导出的数据";

}

}

catch (Exception ex)

{

result = "导出失败!";

}

return result;

}

/// <summary>

///  Excel文件保存到服务器 Excel文件版本:office 2007

/// </summary>

/// <param name="dt">数据表</param>

/// <param name="fileName">服务器端文件名称</param>

/// <param name="filePath">服务器端文件路径</param>

/// <param name="columnName">表头</param>

/// <param name="insertColumnIdnex">插入空列索引</param>

private void SaveFile(System.Data.DataTable dt, string fileName, string filePath, string[] columnName = null)

{

Application app = null;

Workbook wb = null;

Worksheet sheet = null;

try             {

string[] field = { "Alias", "dxx", "dxq", "dxc", "dxm", "ylx", "ylq", "ylc", "ylm", "dkx", "dkq", "dkc", "dkm" };

app = new Application();

app.Visible = false;

wb = (Workbook)app.Workbooks.Add(Missing.Value);

sheet = (Worksheet)wb.ActiveSheet;

DataTable result = dt;

if (columnName != null && columnName.Length > 0)

{                     for (int i = 0; i < columnName.Length; i++)

{

string a = columnName[i].ToString();

sheet.Cells[1, i + 1].Value2 = columnName[i];

}

}

//内容填充

for (int j = 0; j < result.Rows.Count; j++)

{

sheet.Cells[j + 2, 1].Value2 = j + 1;

for (int k = 0; k < field.Length; k++)

{

string datavalue = "";

datavalue = result.Rows[j][field[k]].ToString();

sheet.Cells[j + 2, k + 2].Value2 = datavalue;

}

}

//设置Sheet整体样式

sheet.Columns.EntireColumn.AutoFit();

sheet.Cells.HorizontalAlignment = XlHAlign.xlHAlignLeft;

sheet.Rows.RowHeight = 18;

//设置标题信息

Range ran;

ran = sheet.Range[sheet.Cells[1, 1], sheet.Cells[1, columnName.Length + 1]];

//取得区域

ran.Font.Bold = FontStyle.Bold;

ran.Rows.RowHeight = 30;

wb.Saved = true;

if (!Directory.Exists(filePath))

Directory.CreateDirectory(filePath);

DirectoryInfo dinfo = new DirectoryInfo(filePath);

dinfo.Attributes = FileAttributes.Normal;

string fileInfo = String.Format("{0}{1}", filePath, fileName);

if (File.Exists(fileInfo))

File.Delete(fileInfo);

app.ActiveWorkbook.SaveCopyAs(fileInfo);

}

catch (Exception ex)

{

}

finally

{

wb.Close(null, null, null);

app.Workbooks.Close();

app.Quit();

Marshal.ReleaseComObject((object)app);

Marshal.ReleaseComObject((object)wb);

Marshal.ReleaseComObject((object)sheet);

GC.Collect();

}

}

/// <summary>

///

/// </summary>

/// <param name="context"></param>

/// <param name="xlsfile"></param>

private void ExportToExcel(HttpContext context, string xlsfile)

{

System.IO.FileInfo file = new System.IO.FileInfo(xlsfile);

context.Response.Clear();

context.Response.Charset = "GB2312";

context.Response.ContentEncoding = System.Text.Encoding.UTF8;

// 添加头信息,为"文件下载/另存为"对话框指定默认文件名

context.Response.AddHeader("Content-Disposition", "attachment; filename=" + context.Server.UrlEncode(file.Name));

// 添加头信息,指定文件大小,让浏览器能够显示下载进度

context.Response.AddHeader("Content-Length", file.Length.ToString());

// 指定返回的是一个不能被客户端读取的流,必须被下载

context.Response.ContentType = "application/ms-excel";

// 把文件流发送到客户端

context.Response.WriteFile(file.FullName);

// 停止页面的执行

context.Response.End();

}

#endregion

时间: 2024-08-02 09:15:03

c# 导出数据的相关文章

PHPexcel导出数据

百度PHPexcel 进入后 选择branches  进入选择版本 拷贝classes文件 改名为PHPexcel 下面是我用thinkphp3.2.3写的一个简单导出 public function PHPexcel(){ $path=str_replace('\\','/',__FILE__);//替\为/ $arr=explode('/',$path); $str = $arr[0].'/'.$arr[1].'/'.$arr[2].'/'.$arr[3].'/';//拼装文件路径 $a =

MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult

MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult 导出EXCEL方法总结:MVC导出数据到EXCEL的方法有很多种,常见的是: 1.采用EXCEL COM组件来动态生成XLS文件并保存到服务器上,然后转到该文件存放路径即可:优点:可设置丰富的EXCEL格式,缺点:需要依赖EXCEL组件,且EXCEL进程在服务器中无法及时关闭,以及服务器上会存留大量的不必要的XLS文件: 2.设置输出头为:application/ms-excel,再输出拼接的HTM

mysql数据库导入导出数据

导入数据: 形式:load data infile '路径' into table xxx;outfile:将信息输出到文件上(自动创建文件,不可以重新文件,为了保护文件)select * from hd_cate; select * into outfile 'e:/demo/one' from hd_cate;生成的文件格式;默认的,采用行来区分记录,而采用制表符,来区分字段为了满足某种特别的需求,会采用不同的分割方式,支持,在导出数据时,设置记录,与字段的分隔符 通过如下的选项fields

Oracle—— 导入/导出 数据:exp,imp 命令

exp,imp 命令是需要在windows  的 cmd  命令中执行的命令,主要用于数据的导入和导出工作,方便高效. 远程地址--  @ip:port/orcl   注:该远程地址不写,就意味着执行本地的库. Oracle的数据导出 (1)导出数据的提示模式: exp  jl_bhps/[email protected]:1521/orcl (2)表方式:将指定表的数据导出. exp  jl_bhps/[email protected]:1521/orcl  file=d:temp/1.dmp

mysqldump指定编码导出数据后转变编码

第一步,导出旧库mysqldump --default-character-set latin1 -uroot -pXXX --database db >     /tmp/old.sql第二步,转换编码iconv -t utf-8 -f gb2312 -c /tmp/old.sql > /tmp/new.sql第三步,导入新库修改new.sql,增加一条sql语句: "SET NAMES utf8;",保存.mysql -hlocalhost -uroot db <

关于Oracle导出数据的几个错误EXP-00008,ORA-00904,ORA-01003,EXP-00091

首先说明数据库的版本 服务器:10.2.0.5.0 客户端:11.2.0.1.0 导出会报错 EXP-00008: 遇到 ORACLE 错误 1003 ORA-01003: no statement parsed 和 EXP-00008: 遇到 ORACLE 错误 904 ORA-00904: "MAXSIZE": invalid identifier 这小样问题,怎么也不会想到是客户端不能向下兼容吧,困了我很久.我决定试下是不是客户端不兼容问题,果然是这样的. 装了个虚拟机,客户端版

db2导出数据并导入hive临时表中

操作: 1.从db2 中导出数据到txt中 2.修改文件中的分隔符为":" 3.在hive中新建表(建表时需要制定分隔符) 4.导入数据 -------- 1.从db2 中导出数据到txt中 db2 -x "select col1,col2,col3  from tbl_name where xxx with ur">filename.txt 2.修改文件中的分隔符为":" cat filename.txt | awk '{print $1

yii2 数据导出 excel导出以及导出数据时列超过26列时解决办法

作者:白狼 出处:http://www.manks.top/article/yii2_excel_extension? 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 先概括下我们接下来要说的大致内容: 数据列表页面导出excel数据, 1.可以根据GridView的filter进行搜索数据并导出 2.可以自行扩展数据导出的时间直接导出数据 //先来看controller层,接收GridView参数并做拼接处理 php c

mysql导入导出数据中文乱码解决方法小结

inux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8, 例如下面的代码: 复制代码 代码如下: mysqldump -uroot -p --default-character-set=utf8 dbname tablename > bak.sql 那么导入数据的时候也要使用--

hive导入导出数据案例

查询数据: use ods;set /user.password=ODS-SH;select * from base_cdma_all limit 10; use tag_bonc;select * from dpi_http_userapp_statistics limit 100000; #设置显示当前使用的数据库 set hive.cli.print.current.db=true; #设置不优先使用MapReduce set hive.exec.mode.local.auto=true;