excel上传下载
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上传下载的更多相关文章
- 基于Spring Mvc实现的Excel文件上传下载
最近工作遇到一个需求,需要下载excel模板,编辑后上传解析存储到数据库.因此为了更好的理解公司框架,我就自己先用spring mvc实现了一个样例. 基础框架 之前曾经介绍过一个最简单的spring ...
- 简单Excel表格上传下载,POI
一.废话 Excel表格是office软件中的一员,几乎是使用次数最多的办公软件.所以在java进行企业级应用开发的时候经常会用到对应的上传下载便利办公. 目前,比较常用的实现Java导入.导出Exc ...
- excel上传和下载
需要注意的地方: 1.js构造表单并提交 2.js中文传参encodeURI(encodeURI("中文")),action接收并转换value = URLDecoder.deco ...
- 2019.06.05 ABAP EXCEL 操作类代码 OLE方式(模板下载,excel上传,内表下载)
一般使用标准的excel导入方法9999行,修改了标准的excel导入FM 整合出类:excel的 模板下载,excel上传,ALV内表下载功能. 在项目一开始可以SE24创建一个类来供整体开发使用, ...
- java:工具(汉语转拼音,压缩包,EXCEL,JFrame窗口和文件选择器,SFTP上传下载,FTP工具类,SSH)
1.汉语转拼音: import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuP ...
- ABAP EXCEL 文件上传下载 用SMW0
T-CODE: SMW0 在这里只介绍二进制数据,HTML模板的上传也一样. 另外也可以用CBO TABLE管理文件 可以看我另一个博文:CBO TABLE管理文件上传下载 选择 二进制 写包名: 进 ...
- SNF开发平台WinForm之六-上传下载组件使用-SNF快速开发平台3.3-Spring.Net.Framework
6.1运行效果: 6.2开发实现: 1.先在要使用的项目进行引用,SNF.WinForm.Attachments.dll文件. 2.在工具箱内新建选项卡->选择项,浏览找到文件SNF.WinFo ...
- .NET两种常见上传下载文件方法
1.FTP模式 代码如下: (1)浏览 /// <summary> /// 浏览文件 /// </summary> /// <param name="tbCon ...
- WEB文件上传下载功能
WEB文件上传下载在日常工作中经常用到的功能 这里用到JS库 http://files.cnblogs.com/meilibao/ajaxupload.3.5.js 上传代码段(HTML) <% ...
随机推荐
- MQTT项目请求设置
MQTT项目请求设置:XMLHttpRequest WithCredentials 1.如果在发送来自其他域的XMLHttpRquest请求之前,未设置withCredentiaals为true,那么 ...
- matlab-调用摄像头人脸识别
----------------------------边学边写边学习------------------------------------- 版本:2014a 调用摄像头 a = imaqhwin ...
- Android Jetpack 组建介绍(二)——Lifecycler
参考Android Jetpack架构组件之 Lifecycle(源码篇) 源码分析 关于Lifecycle的使用考上一篇文章Android Jetpack框架之 Lifecycles(使用篇),从使 ...
- [python]关于函数传入参数
在传入参数时有两个特殊参数,*args,**kwargs,功能如下: def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ' ...
- 逃逸分析(Escape Analysis)
一.什么是逃逸 逃逸是指在某个方法之内创建的对象,除了在方法体之内被引用之外,还在方法体之外被其它变量引用到:这样带来的后果是在该方法执行完毕之后,该方法中创建的对象将无法被GC回收,由于其被其它变量 ...
- vue源码逐行注释分析+40多m的vue源码程序流程图思维导图 (diff部分待后续更新)
vue源码业余时间差不多看了一年,以前在网上找帖子,发现很多帖子很零散,都是一部分一部分说,断章的很多,所以自己下定决定一行行看,经过自己坚持与努力,现在基本看完了,差ddf那部分,因为考虑到自己要换 ...
- bootstrap之bootstrap-table插件使用心得以及实现过程
1.首先一个页面(增删改查) 2.实现增删改查(一个框架) 3.编码问题(前端meta utf-8:引用中文包:contentType参数区utf-8的设置:响应的utf-8的编码设置) 4.多条件查 ...
- mysql null 相关bug
select 1 = null 并不是预期的 False 而是 Null select 1 is null; 这样才会产生预期的 False select 1 not is null 这样写是 错误 ...
- jQuery横向上下排列鱼骨图形式信息展示代码时光轴样式(转自CSDN,原文链接附于文中)
原文链接:http://www.jqueryfuns.com/resource/2173 $.fn.fishBone = function(data) { var colors = ['#F89782 ...
- BufferedStream说明
BufferedStream并不是将所有内容都存放到内存中,而MemoryStream则是. BufferedStream必须跟其他流如FileStream结合使用,而MemoryStream则不用