|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Web;
|
|
|
|
|
using System.Web.UI;
|
|
|
|
|
using System.Web.UI.WebControls;
|
|
|
|
|
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Drawing.Imaging;
|
|
|
|
|
using System.Drawing;
|
|
|
|
|
using NPOI;
|
|
|
|
|
using NPOI.HSSF.UserModel;
|
|
|
|
|
using NPOI.SS.UserModel;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using NPOI.SS.Util;
|
|
|
|
|
using System.Collections;
|
|
|
|
|
using System.Text.RegularExpressions;
|
|
|
|
|
using NPOI.HPSF;
|
|
|
|
|
|
|
|
|
|
namespace TradeManage.TongJi
|
|
|
|
|
{
|
|
|
|
|
public partial class Report21 : System.Web.UI.Page
|
|
|
|
|
{
|
|
|
|
|
private static readonly string imageBasePath = AppDomain.CurrentDomain.BaseDirectory + "images/";
|
|
|
|
|
private static readonly string excelBasePath = AppDomain.CurrentDomain.BaseDirectory + "ServerCookies/";
|
|
|
|
|
//private static readonly string imageBasePath = "E:\\tfstmsk\\erp\\TradeManage\\TradeManage\\images\\";
|
|
|
|
|
// private static readonly string excelBasePath = "E:\\tfstmsk\\erp\\TradeManage\\TradeManage\\ServerCookies\\";
|
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (!IsPostBack)
|
|
|
|
|
{
|
|
|
|
|
Bind();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void Bind()
|
|
|
|
|
{
|
|
|
|
|
//string jsonobjstr = HttpHelper.QueryString("json", "");
|
|
|
|
|
List<PrintCard> cards = new List<PrintCard>()
|
|
|
|
|
{
|
|
|
|
|
new PrintCard{ CardCode="0230010900010336",Password= "123456"},
|
|
|
|
|
new PrintCard{ CardCode="0230010900010339",Password="123456"},
|
|
|
|
|
new PrintCard{ CardCode="0230010900010340",Password= "123456"},
|
|
|
|
|
new PrintCard{ CardCode="0230000900010340",Password= "123456"},
|
|
|
|
|
new PrintCard{ CardCode="0230020900010349",Password="123456"}
|
|
|
|
|
};
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
// cards = JsonHelper.JsonDeserialize<List<Card>>(jsonobjstr);
|
|
|
|
|
Session["ListPrintCard"] = cards;
|
|
|
|
|
|
|
|
|
|
gvCardList.DataSource = cards;
|
|
|
|
|
gvCardList.DataBind();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
Page.ClientScript.RegisterStartupScript(this.GetType(), "key", "<script>alert('" + ex.Message.ToString() + "');</script>");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public class PrintCard
|
|
|
|
|
{
|
|
|
|
|
public string CardCode { get; set; }
|
|
|
|
|
public string Password { get; set; }
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 生成二维码
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="QrCodeStr">二维码字符串</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public string GetQrCode(string QrCodeStr)
|
|
|
|
|
{
|
|
|
|
|
string FileName = imageBasePath + "ewm.png";
|
|
|
|
|
//try
|
|
|
|
|
//{
|
|
|
|
|
// QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.L);
|
|
|
|
|
// QrCode qrCode = new QrCode();
|
|
|
|
|
// qrEncoder.TryEncode(QrCodeStr, out qrCode);
|
|
|
|
|
// GraphicsRenderer renderer = new GraphicsRenderer(new FixedModuleSize(5, QuietZoneModules.Two), Brushes.Black, Brushes.White);
|
|
|
|
|
// using (FileStream stream = new FileStream(FileName, FileMode.Create))
|
|
|
|
|
// {
|
|
|
|
|
// renderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, stream);
|
|
|
|
|
// }
|
|
|
|
|
//}
|
|
|
|
|
//catch (Exception ex)
|
|
|
|
|
//{
|
|
|
|
|
// FileName = "";
|
|
|
|
|
// throw ex;
|
|
|
|
|
//}
|
|
|
|
|
return FileName;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected void btnGenerateCode_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
//GenerateQrCodeNet();
|
|
|
|
|
AddPicture();
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 二维码导出到Excel
|
|
|
|
|
/// </summary>
|
|
|
|
|
protected void AddPicture()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (!Directory.Exists(imageBasePath))
|
|
|
|
|
{
|
|
|
|
|
Directory.CreateDirectory(imageBasePath);
|
|
|
|
|
}
|
|
|
|
|
if (!Directory.Exists(excelBasePath))
|
|
|
|
|
{
|
|
|
|
|
Directory.CreateDirectory(excelBasePath);
|
|
|
|
|
}
|
|
|
|
|
//创建工作薄
|
|
|
|
|
HSSFWorkbook workbook = new HSSFWorkbook();
|
|
|
|
|
|
|
|
|
|
//create sheet
|
|
|
|
|
HSSFSheet sheet = (HSSFSheet)workbook.CreateSheet("Sheet1");
|
|
|
|
|
string FileName = excelBasePath + DateTime.Now.ToString("yyyyMMddhh24mss") + ".xls";
|
|
|
|
|
|
|
|
|
|
#region 右击文件 属性信息
|
|
|
|
|
//{
|
|
|
|
|
// DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();
|
|
|
|
|
// dsi.Company = "http://....../";
|
|
|
|
|
// workbook.DocumentSummaryInformation = dsi;
|
|
|
|
|
|
|
|
|
|
// SummaryInformation si = PropertySetFactory.CreateSummaryInformation();
|
|
|
|
|
// if (HttpContext.Current.Session["realname"] != null)
|
|
|
|
|
// {
|
|
|
|
|
// si.Author = HttpContext.Current.Session["realname"].ToString();
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// if (HttpContext.Current.Session["username"] != null)
|
|
|
|
|
// {
|
|
|
|
|
// si.Author = HttpContext.Current.Session["username"].ToString();
|
|
|
|
|
// }
|
|
|
|
|
// } //填加xls文件作者信息
|
|
|
|
|
// si.ApplicationName = "NPOI"; //填加xls文件创建程序信息
|
|
|
|
|
// si.LastAuthor = "OA系统"; //填加xls文件最后保存者信息
|
|
|
|
|
// si.Comments = "OA系统自动创建文件"; //填加xls文件作者信息
|
|
|
|
|
// si.Title = "ddd"; //填加xls文件标题信息
|
|
|
|
|
// si.Subject = "ddd"; //填加文件主题信息
|
|
|
|
|
// si.CreateDateTime = DateTime.Now;
|
|
|
|
|
// workbook.SummaryInformation = si;
|
|
|
|
|
//}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
string strQrCodePath = "";
|
|
|
|
|
//填充列标题以及样式
|
|
|
|
|
int rowsNum = 0; //行号
|
|
|
|
|
HSSFRow headerRow = (HSSFRow)sheet.CreateRow(rowsNum);
|
|
|
|
|
HSSFCellStyle headStyle = (HSSFCellStyle)workbook.CreateCellStyle();
|
|
|
|
|
headStyle.Alignment = (HorizontalAlignment)HorizontalAlignment.CENTER;
|
|
|
|
|
headerRow.HeightInPoints = 30;
|
|
|
|
|
|
|
|
|
|
HSSFFont font = (HSSFFont)workbook.CreateFont();
|
|
|
|
|
font.FontHeightInPoints = 13;
|
|
|
|
|
font.Boldweight = 700;
|
|
|
|
|
headStyle.SetFont(font);
|
|
|
|
|
|
|
|
|
|
headerRow.CreateCell(0, CellType.STRING).SetCellValue("卡号");
|
|
|
|
|
headerRow.CreateCell(1, CellType.STRING).SetCellValue("密码");
|
|
|
|
|
headerRow.CreateCell(2, CellType.STRING).SetCellValue("卡二维码");
|
|
|
|
|
//合并列头单元格
|
|
|
|
|
//CellRangeAddress cellRangeAddress = new CellRangeAddress(0, 0, 2, 4);
|
|
|
|
|
//sheet.AddMergedRegion(cellRangeAddress);
|
|
|
|
|
|
|
|
|
|
//设置列的宽度
|
|
|
|
|
for (int columnindex = 0; columnindex < 3; columnindex++)
|
|
|
|
|
{
|
|
|
|
|
headerRow.GetCell(columnindex).CellStyle = headStyle;
|
|
|
|
|
sheet.SetColumnWidth(columnindex, 5000);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//填充数据行
|
|
|
|
|
HSSFRow row = null;
|
|
|
|
|
rowsNum = 1; //行号,从第2行开始
|
|
|
|
|
List<PrintCard> list = (List<PrintCard>)Session["ListPrintCard"];
|
|
|
|
|
foreach (PrintCard p in list)
|
|
|
|
|
{
|
|
|
|
|
//写入字段值
|
|
|
|
|
row = (HSSFRow)sheet.CreateRow(rowsNum);
|
|
|
|
|
HSSFCellStyle cellStyle = (HSSFCellStyle)workbook.CreateCellStyle();
|
|
|
|
|
cellStyle.Alignment = (HorizontalAlignment)HorizontalAlignment.CENTER;
|
|
|
|
|
row.HeightInPoints = 120;
|
|
|
|
|
HSSFFont cellfont = (HSSFFont)workbook.CreateFont();
|
|
|
|
|
cellfont.FontHeightInPoints = 10;
|
|
|
|
|
cellStyle.SetFont(cellfont);
|
|
|
|
|
|
|
|
|
|
row.CreateCell(0, CellType.STRING).SetCellValue(p.CardCode);
|
|
|
|
|
row.CreateCell(1, CellType.STRING).SetCellValue(p.Password);
|
|
|
|
|
row.CreateCell(2, CellType.BLANK).SetCellValue("");
|
|
|
|
|
|
|
|
|
|
//合并单元格
|
|
|
|
|
//CellRangeAddress rowCellRangeAddress = new CellRangeAddress(rowsNum, rowsNum, 2, 4);
|
|
|
|
|
//sheet.AddMergedRegion(rowCellRangeAddress);
|
|
|
|
|
|
|
|
|
|
strQrCodePath = GetQrCode(p.CardCode);
|
|
|
|
|
byte[] bytes = System.IO.File.ReadAllBytes(strQrCodePath);
|
|
|
|
|
int pictureIdx = workbook.AddPicture(bytes, PictureType.PNG);
|
|
|
|
|
|
|
|
|
|
// Create the drawing patriarch. This is the top level container for all shapes.
|
|
|
|
|
HSSFPatriarch patriarch = (HSSFPatriarch)sheet.CreateDrawingPatriarch();
|
|
|
|
|
|
|
|
|
|
//add a picture
|
|
|
|
|
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 10, 1023, 0, 2, rowsNum, 2, rowsNum);
|
|
|
|
|
|
|
|
|
|
HSSFPicture pict = (HSSFPicture)patriarch.CreatePicture(anchor, pictureIdx);
|
|
|
|
|
pict.Resize();
|
|
|
|
|
|
|
|
|
|
//设置行的高度
|
|
|
|
|
for (int rowindex = 0; rowindex < 3; rowindex++)
|
|
|
|
|
{
|
|
|
|
|
row.GetCell(rowindex).CellStyle = cellStyle;
|
|
|
|
|
}
|
|
|
|
|
rowsNum++;
|
|
|
|
|
//删除图片文件
|
|
|
|
|
//if (File.Exists(strQrCodePath))
|
|
|
|
|
//{
|
|
|
|
|
// File.Delete(strQrCodePath);
|
|
|
|
|
//}
|
|
|
|
|
}
|
|
|
|
|
//供浏览器下载Excel
|
|
|
|
|
if (HttpContext.Current.Request.Browser.Browser == "IE")
|
|
|
|
|
FileName = HttpUtility.UrlEncode(FileName);
|
|
|
|
|
using (MemoryStream ms = new MemoryStream())
|
|
|
|
|
{
|
|
|
|
|
workbook.Write(ms);
|
|
|
|
|
ms.Flush();
|
|
|
|
|
ms.Position = 0;
|
|
|
|
|
HttpContext curContext = HttpContext.Current;
|
|
|
|
|
|
|
|
|
|
// 设置编码和附件格式
|
|
|
|
|
curContext.Response.ContentType = "application/vnd.ms-excel";
|
|
|
|
|
curContext.Response.ContentEncoding = Encoding.UTF8;
|
|
|
|
|
curContext.Response.Charset = "";
|
|
|
|
|
curContext.Response.AppendHeader("Content-Disposition",
|
|
|
|
|
"attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8));
|
|
|
|
|
curContext.Response.BinaryWrite(ms.GetBuffer());
|
|
|
|
|
ms.Close();
|
|
|
|
|
ms.Dispose();
|
|
|
|
|
curContext.Response.End();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
Page.ClientScript.RegisterStartupScript(this.GetType(), "key", "<script>alert('" + ex.Message.ToString() + "');</script>");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void gvCardList_RowCommand(object sender, GridViewCommandEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
string cardCode = e.CommandArgument.ToString();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|