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. react实现登录注册

    登录注册页面都分为上下两个部分,其中上部是logo,下部分是输入框,所以抽离出来三个组件 logo import React from 'react'import logoImg from './jo ...

  2. 解决pre-commit hook failed (add --no-verify to bypass)的问题

    报错图 问题原因: pre-commit钩子惹的祸 当你在终端输入git commit -m"XXX",提交代码的时候, pre-commit(客户端)钩子,它会在Git键入提交信 ...

  3. Android 开发 PopupWindow弹窗

    简介 PopupWindow,顾名思义弹窗.PopupWindow是与AlertDialog在形式上类似的弹窗功能,都是为了在activity最上层显示一个弹窗.但是区别是PopupWindow可以自 ...

  4. Mui中常见问题记录

    1.mui中A标签如果有这个class="mui-control-item"时,a标签点击链接是没有反应的,那么可以用以下方式实现 : mui.init(); mui('body' ...

  5. 分布式 基本理论 BASE

    比起CAP的生硬来, 我更加喜欢BASE.BASE 显得更加好理解.尽管BASE 这个名字本身有迎合语言习惯的恶臭味,为什么不是缩写为 BaSsEc 呢? 其实大部分系统是可以 同时 CAP 的, 因 ...

  6. spring命名空间

    作为一名入门级菜鸟的我,在刚开始学spring框架的时候,对于命名空间不是很理解,只是在跟着老师敲代码.随着后来学习的深入,慢慢了解到命名空间的意义.如果你没有引入相应的命名空间,就不能引用相应的标签 ...

  7. JMETER之socket接口性能测试

    公司的**产品经过换代升级,终于要上线了,纯java编码,包括POS(PC/安卓平板)版.WEB版.微信版,各终端通过 Webservice服务共享数据资源,因此Webservice各接口的性能测试就 ...

  8. oracle数据库误删的表以及表中记录的恢复

    oracle数据库误删的表以及表中记录的恢复 一.表的恢复 对误删的表,只要没有使用PURGE永久删除选项,那么从flash back区恢复回来希望是挺大的.一般步骤有: --1.从flash bac ...

  9. Jenkins+Git+Maven构建并部署springboot(构建多模块中的单个模块)

    主要思路:1.jenkins从git中拉取项目源码:jenkins使用maven构建并将生成的jar包通过shell脚本启动. 环境:环境:Centos7.Maven3.5.3.git(单机) 准备工 ...

  10. python框架django-web层

    1.demo 命令行:django-admin startproject HelloWorld 命令执行成功后会根据模版生产一个django项目 然后通过 命令:python3 manage.py r ...