生成二维码并导出到excel表
**工作中用到了二维码_生成二维码并导出到excel表.
这里完整做了一下,巩固知识。**
实现效果:在页面上输入字符串,后台处理生成对应的二维码,将二维码作为图片保存,并且在页面显示出来。
前期:用到三方插件ThoughtWorks.QRCode,下载引用。插件生成二维码的类已经很完善,在这里OOXX搬运下就行。
/// <summary>/// 根据提交的内容显示二维码/// </summary> protected void btn_Click(object sender, EventArgs e){QRCodeEncoder enCoder = new QRCodeEncoder();enCoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;enCoder.QRCodeBackgroundColor = Color.White;enCoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;enCoder.QRCodeScale = 4;//等级越大像素越高enCoder.QRCodeVersion = 7;//生成了二维码图片Bitmap map = enCoder.Encode(txtUrl.Text.Trim());//将图片保存在本地string filePath = @"F:\google下载\QRCode\";if (!Directory.Exists(filePath)){Directory.CreateDirectory(filePath);}string imgName=Guid.NewGuid().ToString().Replace("-","");string Path=filePath + imgName + ".png";map.Save(Path); map.Dispose();img.ImageUrl = "http://****:55/" + imgName + ".png";}
效果:
备注:生成二维码图片保存到本地后,我没有想到好的方法呈现在页面,只是在iis上 将保存图片的文件夹发出来在直接访问。对此,期待指点。
下面是将二维码导出到excel 表处理
//将数据整合生成excel
public static MemoryStream DealData(List<NewList> DataList){HSSFWorkbook workbook = new HSSFWorkbook();ISheet sheet = workbook.CreateSheet("Sheet1");//10列sheet.SetColumnWidth(0, 8 * 256 + 200);sheet.SetColumnWidth(1, 8 * 256 + 200);sheet.SetColumnWidth(2, 8 * 256 + 200);sheet.SetColumnWidth(3, 8 * 256 + 200);sheet.SetColumnWidth(4, 8 * 256 + 200);sheet.SetColumnWidth(5, 8 * 256 + 200);sheet.SetColumnWidth(6, 8 * 256 + 200);sheet.SetColumnWidth(7, 8 * 256 + 200);sheet.SetColumnWidth(8, 8 * 256 + 200);sheet.SetColumnWidth(9, 20 * 256 + 200);//图片列//通用样式ICellStyle headStyle = workbook.CreateCellStyle();headStyle.Alignment = HorizontalAlignment.Left;headStyle.VerticalAlignment = VerticalAlignment.Center;IFont font = workbook.CreateFont();font.FontHeightInPoints = 10;font.Boldweight = 30;headStyle.SetFont(font);int rowIndex = 0;#region 表头及样式{IRow headerRow = sheet.CreateRow(rowIndex);headerRow.HeightInPoints = 20; string[] Header = { "单位", "编码", "厂家", "型号", "功率", "启用日期", "操作人", "操作时间", "油机状态", "二维码" };for (int i = 0; i < Header.Length; i++){headerRow.CreateCell(i).SetCellValue(Header[i]);headerRow.GetCell(i).CellStyle = headStyle;}rowIndex++;}#endregion#region 填充数据for (int j = 0; j <DataList.Count() ; j++){IRow rows = sheet.CreateRow(rowIndex);rows.HeightInPoints = 110;//二维码原大小呈现,行高大int num = 0;//列指针rows.CreateCell(num).SetCellValue(DataList[j].Orgname);//单位rows.GetCell(num++).CellStyle = headStyle;rows.CreateCell(num).SetCellValue(DataList[j].Engine.Num);//编码rows.GetCell(num++).CellStyle = headStyle;rows.CreateCell(num).SetCellValue(DataList[j].Engine.Manufactor);//厂家rows.GetCell(num++).CellStyle = headStyle;rows.CreateCell(num).SetCellValue(DataList[j].Engine.Model);//型号rows.GetCell(num++).CellStyle = headStyle;rows.CreateCell(num).SetCellValue(DataList[j].Engine.Power.HasValue ? DataList[j].Engine.Power.ToString() : "");//功率rows.GetCell(num++).CellStyle = headStyle;rows.CreateCell(num).SetCellValue(DataList[j].Engine.EnableTime.HasValue ? DataList[j].Engine.EnableTime.ToString() : "");//启用日期rows.GetCell(num++).CellStyle = headStyle;rows.CreateCell(num).SetCellValue(DataList[j].realityName);//操作人rows.GetCell(num++).CellStyle = headStyle;rows.CreateCell(num).SetCellValue(DataList[j].Engine.DateInfo.ToString());//操作时间rows.GetCell(num++).CellStyle = headStyle;rows.CreateCell(num).SetCellValue(DataList[j].MachineStateText);//油机状态 rows.GetCell(num++).CellStyle = headStyle;//处理二维码图片AddPieChartMerage(sheet, workbook, DataList[j].Engine.QRCodePhoto, rowIndex, num, 0,true);rowIndex++;}#endregionusing (MemoryStream ms = new MemoryStream()){workbook.Write(ms);ms.Flush();ms.Position = 0;sheet = null;workbook = null;return ms;}}
处理图片
///totalFileURL 图片完整路径 private static void AddPieChartMerage(ISheet sheet, HSSFWorkbook workbook, string totalFileURL, int row, int col, int MerageColCount,bool isResize=false){try{HSSFPatriarch patriarch = (HSSFPatriarch)sheet.CreateDrawingPatriarch();//处理照片位置,【图片左上角为(col, row)第row+1行col+1列,右下角为( col +1, row +1)第 col +1+1行row +1+1列,宽为100,高为50HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 100, 50, col, row, col + 1, row + 1);int i = 0;foreach (var fileurl in totalFileURL.Split(';')){string path = fileurl;byte[] bytes = System.IO.File.ReadAllBytes(path);if (!string.IsNullOrEmpty(path)){int pictureIdx = workbook.AddPicture(bytes, NPOI.SS.UserModel.PictureType.JPEG);anchor = new HSSFClientAnchor(i * 100, 0, i * 100 + 100, 0, col, row, col + 1 + MerageColCount, row + 1);HSSFPicture pict = (HSSFPicture)patriarch.CreatePicture(anchor, pictureIdx);if (isResize)//是否显示图片原大小{pict.Resize();}}i++;}}catch (Exception){//throw ex;}}
效果:
Mark:
生成待logo的二维码:http://www.jb51.net/article/104639.htm
二维码的编码/解码:https://www.cnblogs.com/xuhang/p/3832118.html
生成二维码并导出到excel表相关推荐
- 数据转换成二维码并导出进Excel中和导入时解码二维码反转成数据
数据转换成二维码并导出进Excel中和导入时解码二维码反转成数据 第一步在maven中配置需要的二维码jar包 1.1 谷歌提供的帮助类 1.2 关于二维码的工具类 1.3 测试类 第二步 在Exce ...
- springboot+hutool批量生成二维码压缩导出
文章目录 1.引入依赖 2.测试编码 3.批量生成 4.解析excel 5.批量图片压缩 6.上传excel直接将输出流转成压缩包 1.引入依赖 <!-- 生成二维码依赖--><de ...
- vue前端生成二维码并导出PDF
1.安装插件 npm install --save qrcodejs2 (这是生成微信二维码插件) npm install html2canvas jspdf --save (这是将html页面转化为 ...
- 全自动生成二维码和条形码,Excel和WPS都可以哦
安装<E灵V17.0>后,设置好参数,录入任意数据即可自动生成二维码. 单击切换按钮可以切换成条形码,再次单击则生成二维码.
- JAVA 生成二维码并写到EXCEL中导出
1.引入依赖 <dependency><groupId>com.google.zxing</groupId><artifactId>core</a ...
- SpringBoot项目生成二维码,再生成Excel文件导出,亲测采坑
1.项目环境 maven依赖 pom文件 <!--easypoi--><dependency><groupId>cn.afterturn</groupId&g ...
- 基于云开发模式的评分小程序总结!二维码、导出excel表格等实用干货!
基于云开发的打分小程序开发总结 1.TAKE打分小程序 1.1.项目简介 1.1.1.开发背景 1.1.2.项目介绍 1.2.项目效果图 1.2.1.主页 1.2.2.评分流程页 1.2.3.项目详情 ...
- Winform中实现Excel导入、表格展示、多选获取值、生成二维码、打印流程(附代码下载)
场景 整体流程需求 1.导入Excel并获取Excel的数.. 2.将Excel的数据复制给DataGridView中进行显示并能实现多选. 3.根据选中的内容生成二维码. 4.将二维码打印. 整体效 ...
- 读取excel批量生成二维码
昨天工作需要,让生成二维码,让用草料生成,就需要一个个的复制粘贴,有点麻烦.关键是量特别大,如果传统的复制粘贴要很长时间才可以. 后来想到用程序生成.于是百度了一下生成二维码的方法,别说还很简单,把代 ...
- 速码工具箱,Excel批量生成二维码,瞬间搞定!
之前写过一篇文章,<批量生成二维码>,当时介绍了VBA中两种生成二维码的方式,一种需要引用QRmaker控件,一种是纯代码生成的方式.但是这两种方式都有一个最大的bug--不支持64位. ...
最新文章
- iOS的KVO实现剖析
- Oracle基于Linux平台的虚拟化与云计算战略
- 全国计算机等级考试二级教程——公共基础知识(2013年版)pdf,全国计算机等级考试2级教程:公共基础知识(2013年版)...
- 软文推荐:常用 Java 静态代码分析工具的分析与比较
- morse java_华威MORSE,华威数统那个比较好?
- 【OO学习】OO第二单元作业总结
- 两岁的微信小程序,创造超 5000 亿的价值
- Java并发线程之线程池
- python pip install 总是出错的解决方法_pip安装总是失败怎么办? 3个方法帮你解决...
- 牛客练习赛22C Bitset
- 蚂蚁课堂视频笔记思维导图-4期 四、微服务安全
- 板簧的弹性系数如何计算_滑板式钢板弹簧悬架变刚度计算方法的研究
- 数据分析全国薪酬分布状况
- 记录习惯【Unity 3D中3D场景下嵌套2D Canvas并实现窗口缩放】
- FPGA实现HDMI接口
- lua入门之环境搭建、第一个demo
- unity 两种粒子系统
- 智能窗帘研究制作_智能窗帘的制作方法
- Unified Batch All Triplet Loss for Visible-Infrared Person Re-identification
- meego linux版本,记MeeGo的多系统启动