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) <% ...
随机推荐
- oracle入坑日记<三>用户详解(角色理解)
1 用户是什么 1.1.权限管理是Oracle的精华,不同用户登录到同一数据库中,可能看到不同数量的表,拥有不同的权限.Oracle 的权限分为系统权限和数据对象权限,共一百多种.如果把Oracl ...
- [Unity优化]批处理02:动态批处理
参考链接: https://docs.unity3d.com/Manual/DrawCallBatching.html 原理: cpu每帧把可以进行动态批处理的网格进行合并,再把合并后的数据传给gpu ...
- 【C语言基础】变量
1.什么是变量? 变量的本质就是内存中一段储存空间 2.变量为什么必须初始化? 所谓初始化就是赋值的意思 3.如何定义变量 数据类型 变量名 = 要赋的值 举例子: int i = 3:等价于 int ...
- LeetCode 101. Symmetric Tree 判断对称树 C++
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...
- orcal - 添加用户、授权
create user jy2 identified by jy2; grant dba to jy2;
- 基于前台vue,后台是spring boot的压缩图片上传
本人是刚毕业的新手,最近公司的一个项目,前后端分离,前端Vue,后端使用spring boot.其中有一个需求是需要做前端上传的图片需要压缩才能上传.为此在网上查找资料,并做了简单的实现. 那么一步来 ...
- [转]再识Cortex-M3之堆栈
原地址https://blog.csdn.net/liaoxu02/article/details/48107651 Cortex-M3拥有通用寄存器R0-R15以及一些特殊功能寄存器.R0-R12是 ...
- Spring事务实现分析
一.Spring声明式事务用法 1.在spring配置文件中配置事务管理器 <bean id="baseDataSource" class="com.alibaba ...
- spring三大核心
IOC(控制反转) 下面是多个针对此理解的表达. 一个对象A依赖另一个对象B就要自己去new 这是高度耦合的 IOC容器的使用. 比如在B中使用A很多,哪一天A大量更改,那么B中就要修改好多代码. 通 ...
- 新年Flag,零基础程序媛编程学习计划(持续更新ing)~~
新的一年立下了转行做程序媛的Flag,我是文科妹子,专业是做市场传销…哦不,是市场营销,算是零基础转行,目标是半年内完成自学进入公司工作,目前打算从事的方向短期目标以入行为主,以前端(可以发挥自身审美 ...