protected void Button1_Click(object sender, EventArgs e)
{
if (ViewState["unitname"] != null && ViewState["unitprice"] != null)
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("单位"));
dt.Columns.Add(new DataColumn("金额"));
DataRow dr = dt.NewRow(); dr["单位"] = ViewState["unitname"];
dr["金额"] = ViewState["unitprice"];
dt.Rows.Add(dr); CreateExcel(dt, new string[] { "单位", "金额" }, "application/ms-excel", "充值记录-单位" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff"));
}
else
{
ClientScript.RegisterStartupScript(this.GetType(), "alertinfo", "alert('没有数据可供导出!');", true);
}
}
public void CreateExcel(DataTable dt, string[] toprows, string FileType, string FileName)
{
Response.Clear();
Response.Charset = "UTF-8";
Response.Buffer = true;
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.AppendHeader("Content-Disposition", "attachment;filename=\"" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls\"");
Response.ContentType = FileType;
string colHeaders = string.Empty;
string ls_item = string.Empty;
DataRow[] myRow = dt.Select();
int i = ;
int cl = dt.Columns.Count;
//列名
for (int j = ; j < toprows.Length; j++)
{
if (j == (toprows.Length - ))
{
ls_item += toprows[j].ToString() + "\n";
}
else
{
ls_item += toprows[j].ToString() + "\t";
}
}
Response.Output.Write(ls_item);
ls_item = string.Empty; foreach (DataRow row in myRow)
{ for (i = ; i < cl; i++)
{
if (dt.Columns[i].ColumnName.ToUpper() == "OPERACCOUNTVALUE")
{
if (i == (cl - ))
{
ls_item += (Convert.ToInt32(row[i]) * 0.01).ToString("F2") + "\n";
}
else
{
ls_item += (Convert.ToInt32(row[i]) * 0.01).ToString("F2") + "\t";
}
}
else if (dt.Columns[i].ColumnName.ToLower() == "unitid")
{
Dictionary<string, string> dic = ViewState["dic"] as Dictionary<string, string>; if (i == (cl - ))
{
ls_item += dic[row[i].ToString()] + "\n";
}
else
{
ls_item += dic[row[i].ToString()] + "\t";
}
}
else if (dt.Columns[i].ColumnName.ToLower() == "confrim_status")
{
string li = "";
if (row[i].ToString() == "")
{
li = "未审核";
}
if (row[i].ToString() == "")
{
li = "已审核";
}
if (row[i].ToString() == "")
{
li = "不通过";
}
if (i == (cl - ))
{
ls_item += li + "\n";
}
else
{
ls_item += li + "\t";
}
}
else
{
if (i == (cl - ))
{
ls_item += row[i].ToString() + "\n";
}
else
{
ls_item += row[i].ToString() + "\t";
}
}
}
Response.Output.Write(ls_item);
ls_item = string.Empty;
}
Response.Output.Flush();
Response.End();
}
//mvc 下载

   public FileResult ExportExcel()
{
string sql = "";
DataTable dt = RemotingDAL.GetRecords(sql); string[] toprows = new string[] { "id" }; //创建Excel文件的对象(前提:下载NPOI.dll并在项目中引用)
NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
//添加一个sheet
NPOI.SS.UserModel.ISheet sheet1 = book.CreateSheet("Sheet1"); //标题 NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow();
for (int j = ; j < toprows.Length; j++)
{
row1.CreateCell(j).SetCellValue(toprows[j]);
} DataRow[] myRow = dt.Select();
int i = ;
int cl = dt.Columns.Count; foreach (DataRow row in myRow)
{
NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + );
for (int j = ; j < cl; j++)
{
//图片下载
if (dt.Columns[j].ColumnName.ToUpper() == "LISTPICURL" || dt.Columns[j].ColumnName.ToUpper() == "PRIMARYPICURL" || dt.Columns[j].ColumnName.ToUpper() == "PICURL1" || dt.Columns[j].ColumnName.ToUpper() == "PICURL2" || dt.Columns[j].ColumnName.ToUpper() == "PICURL3" || dt.Columns[j].ColumnName.ToUpper() == "PICURL4")
{
string path = DownloadPicture(row[j].ToString(), dt.Columns[j].ColumnName, row["id"].ToString());
rowtemp.CreateCell(j).SetCellValue(path);
}
else
{
rowtemp.CreateCell(j).SetCellValue(row[j].ToString()); }
}
i++;
} System.IO.MemoryStream ms = new System.IO.MemoryStream();
book.Write(ms);
ms.Seek(, SeekOrigin.Begin);
string fileName = "" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff")+".xls";
return File(ms, "application/vnd.ms-excel", fileName); } public string DownloadPicture(string imgUrl, string colname, string id)
{
try
{
//图片保存路径
string path = "D:\\yximages\\" + DateTime.Now.ToString("yyyyMMddHH") + "\\";
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
} string fileName = id + "_" + colname; if (path.Equals(""))
throw new Exception("未指定保存文件的路径");
string imgName = imgUrl.ToString().Substring(imgUrl.ToString().LastIndexOf("/") + );
string defaultType = ".jpg";
string[] imgTypes = new string[] { ".jpg", ".jpeg", ".png", ".gif", ".bmp" };
string imgType = imgUrl.ToString().Substring(imgUrl.ToString().LastIndexOf("."));
string imgPath = "";
foreach (string it in imgTypes)
{
if (imgType.ToLower().Equals(it))
break;
if (it.Equals(".bmp"))
imgType = defaultType;
} HttpWebRequest request = (HttpWebRequest)WebRequest.Create(imgUrl);
request.UserAgent = "Mozilla/6.0 (MSIE 6.0; Windows NT 5.1; Natas.Robot)";
request.Timeout = ; WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream(); //if (response.ContentType.ToLower().StartsWith("image/"))
//{
byte[] arrayByte = new byte[];
int imgLong = (int)response.ContentLength;
int l = ; if (fileName == "")
fileName = imgName; FileStream fso = new FileStream(path + fileName + imgType, FileMode.Create);
while (l < imgLong)
{
int i = stream.Read(arrayByte, , );
fso.Write(arrayByte, , i);
l += i;
} fso.Close();
stream.Close();
response.Close();
imgPath = fileName + imgType;
return imgPath;
}
catch (Exception ex)
{
return "";
} }



 

excel上传下载的更多相关文章

  1. 基于Spring Mvc实现的Excel文件上传下载

    最近工作遇到一个需求,需要下载excel模板,编辑后上传解析存储到数据库.因此为了更好的理解公司框架,我就自己先用spring mvc实现了一个样例. 基础框架 之前曾经介绍过一个最简单的spring ...

  2. 简单Excel表格上传下载,POI

    一.废话 Excel表格是office软件中的一员,几乎是使用次数最多的办公软件.所以在java进行企业级应用开发的时候经常会用到对应的上传下载便利办公. 目前,比较常用的实现Java导入.导出Exc ...

  3. excel上传和下载

    需要注意的地方: 1.js构造表单并提交 2.js中文传参encodeURI(encodeURI("中文")),action接收并转换value = URLDecoder.deco ...

  4. 2019.06.05 ABAP EXCEL 操作类代码 OLE方式(模板下载,excel上传,内表下载)

    一般使用标准的excel导入方法9999行,修改了标准的excel导入FM 整合出类:excel的 模板下载,excel上传,ALV内表下载功能. 在项目一开始可以SE24创建一个类来供整体开发使用, ...

  5. java:工具(汉语转拼音,压缩包,EXCEL,JFrame窗口和文件选择器,SFTP上传下载,FTP工具类,SSH)

    1.汉语转拼音: import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuP ...

  6. ABAP EXCEL 文件上传下载 用SMW0

    T-CODE: SMW0 在这里只介绍二进制数据,HTML模板的上传也一样. 另外也可以用CBO TABLE管理文件 可以看我另一个博文:CBO TABLE管理文件上传下载 选择 二进制 写包名: 进 ...

  7. SNF开发平台WinForm之六-上传下载组件使用-SNF快速开发平台3.3-Spring.Net.Framework

    6.1运行效果: 6.2开发实现: 1.先在要使用的项目进行引用,SNF.WinForm.Attachments.dll文件. 2.在工具箱内新建选项卡->选择项,浏览找到文件SNF.WinFo ...

  8. .NET两种常见上传下载文件方法

    1.FTP模式 代码如下: (1)浏览 /// <summary> /// 浏览文件 /// </summary> /// <param name="tbCon ...

  9. WEB文件上传下载功能

    WEB文件上传下载在日常工作中经常用到的功能 这里用到JS库 http://files.cnblogs.com/meilibao/ajaxupload.3.5.js 上传代码段(HTML) <% ...

随机推荐

  1. Python中随机森林的实现与解释

    使用像Scikit-Learn这样的库,现在很容易在Python中实现数百种机器学习算法.这很容易,我们通常不需要任何关于模型如何工作的潜在知识来使用它.虽然不需要了解所有细节,但了解机器学习模型是如 ...

  2. loadrunner参数化使用mysql数据源失败解决方法

    操作系统:win7 在64位的操作系统上,如果你想要连接32位mysql,避免安装mysql connector/odbc 64位,否则即使配置ODBC数据源连接正常,但loadrunner无法正常调 ...

  3. Jmeter5.1.1+python调用python脚本

    1.下载jython https://www.jython.org/downloads.html 下载Download Jython 2.7.0 - Standalone Jar : For embe ...

  4. kylin配置

    hadoop 2.7.4,hive 2.1.1,hbase 1.4.4 配置好的情况下 下载apache-kylin-2.1.0-bin-hbase1x.tar.gz 解压后,配置环境变量 expor ...

  5. DOM编程艺术章12:一个简单的Ajax例子

    大概入了JavaScript的门,现在要回过头恶补Ajax和json了,随手翻到dom编程艺术发现有一个适合回忆的例子,先抄录下来,引入对Ajax作用的大概印象,再去掰开了研究. <!DOCTY ...

  6. selenium与chrome浏览器及驱动的版本匹配

    用selenium+python+webdriver完成UI功能自动化,经常会碰到浏览器版本与驱动的版本不匹配而引起报错,下面就selenium与chrome浏览器及驱动的版本匹配 做个总结. 使用W ...

  7. 编译安装redis4.0

    下载redis4.0的安装包:http://download.redis.io/releases/redis-4.0.11.tar.gz 这里用的是已经下载到电脑上,只需上传即可 解压缩 [root@ ...

  8. 初识docker

    什么是docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2.0 授权协议开源,主 ...

  9. IIS的UrlRewrite模块

    以前在webform中重写URL是在Global.asax中的Addplication_BeginRequest事件中写代码进行跳转 今天介绍使用IIS提供的UrlRewrite模块实现URL重写 首 ...

  10. mysql mycat 中间件安装与使用

    一,什么是mycat 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务.ACID.可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一 ...