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 = 0; int cl = dt.Columns.Count; //列名 for (int j = 0; j < toprows.Length; j++) { if (j == (toprows.Length - 1)) { 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 = 0; i < cl; i++) { if (dt.Columns[i].ColumnName.ToUpper() == "OPERACCOUNTVALUE") { if (i == (cl - 1)) { 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 - 1)) { 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() == "0") { li = "未审核"; } if (row[i].ToString() == "1") { li = "已审核"; } if (row[i].ToString() == "2") { li = "不通过"; } if (i == (cl - 1)) { ls_item += li + "\n"; } else { ls_item += li + "\t"; } } else { if (i == (cl - 1)) { 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(0); for (int j = 0; j < toprows.Length; j++) { row1.CreateCell(j).SetCellValue(toprows[j]); } DataRow[] myRow = dt.Select(); int i = 0; int cl = dt.Columns.Count; foreach (DataRow row in myRow) { NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + 1); for (int j = 0; 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(0, 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("/") + 1); 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 = 3000; WebResponse response = request.GetResponse(); Stream stream = response.GetResponseStream(); //if (response.ContentType.ToLower().StartsWith("image/")) //{ byte[] arrayByte = new byte[1024]; int imgLong = (int)response.ContentLength; int l = 0; if (fileName == "") fileName = imgName; FileStream fso = new FileStream(path + fileName + imgType, FileMode.Create); while (l < imgLong) { int i = stream.Read(arrayByte, 0, 1024); fso.Write(arrayByte, 0, i); l += i; } fso.Close(); stream.Close(); response.Close(); imgPath = fileName + imgType; return imgPath; } catch (Exception ex) { return ""; } }
浙公网安备 33010602011771号