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) <% ...
随机推荐
- 种类并查集(洛谷P2024食物链)
题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B 吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个动物都是 A,B,C 中的一种,但是我 ...
- C语言列出真分数序列代码及解析
问题描述 按递增顺序依次列出所有分母为60,分子小于60的最简分数. 问题分析 分子.分母只有公因数1的分数叫做最简分数或者说分子和分母是互质数的分数,叫做最简分数,又称既约分数,如2/3,8/9,3 ...
- python2 with open(path,"",) as f:
python2 with open 没有 encoding 这个参数 会报错, 可以 import io with io.open(path,"") as f: 这样就ok 或者是 ...
- 位运算骚操作 Part 3
▶ 异或运算 "^" 具有的部分性质: ● 交换律,结合律 ● a ^ b == (!a & b) | (a & !b),a ^ 1 == !a,a ^ 0 == ...
- JAVA学习记录(一)————JAVA中的集合类
这个图是总体的框架图,主要是两个接口Collection和Map都继承接口Iterator(Iterable),为了实现可以使用迭代器.Collection和Map类似平级关系. 1.这里我先学习下A ...
- ie8兼容性总结
DOCTYPE 首先需要确保你的HTML页面开始部分要有DOCTYPE声明.DOCTYPE告诉浏览器使用什么样的HTML或XHTML规范来解析HTML文档,具体会影响: 对标记.attributes ...
- Vue note 2
1.异步加载组件 一般单页面的缺点是首屏加载比较慢,因为首屏会把所有所需静态资源全部加载,对于中大型项目来说这样可能不是很合理.初步采用异步组件的方式,配合webpack,组件内部可以采用: comp ...
- JVM-如何判断对象存活与否与CMS收集器和G1收集器的区别
JVM如何判断对象存活? 1.计数器 2.可达性分析 (很多主流语言采用这种方法来判断对象是否存活) 计数器:每当有一个地方引用该对象时,计数器 +1:引用失效则 -1: 优点:实现简单,判定效率 ...
- docker 启动报错 WARNING: IPv4 forwarding is disabled. Networking will not work.
解决办法: # vi /etc/sysctl.conf 或者 # vi /usr/lib/sysctl.d/00-system.conf 添加如下代码: net.ipv4.ip_forward ...
- DOM访问和处理HTML文档的标准方法
innerHTML获取或替换HTML元素的内容 <p id="d">对于错我无法来判断 </p><script type="text/jav ...