生成二维码并导出到excel表

生成二维码并导出到excel表
摘要由CSDN通过智能技术生成


**工作中用到了二维码_生成二维码并导出到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
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下步骤实现: 1. 引入依赖 在 pom.xml 文件中添加以下依赖: ``` <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.3</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.3</version> </dependency> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.10.2</version> </dependency> ``` 2. 生成二维码 在代码中使用以下方法生成二维码: ``` public static void generateQRCode(String content, String filePath) throws Exception { int width = 300; int height = 300; String format = "png"; Map<EncodeHintType, Object> hints = new HashMap<>(); hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints); Path path = FileSystems.getDefault().getPath(filePath); MatrixToImageWriter.writeToPath(bitMatrix, format, path); } ``` 其中,`content` 参数为生成二维码的内容,`filePath` 参数为生成的二维码保存的路径。 3. 上传到 OSS 使用以下代码将生成的二维码上传到 OSS: ``` public static void uploadFileToOSS(String endpoint, String accessKeyId, String accessKeySecret, String bucketName, String objectName, String filePath) { OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); try { ossClient.putObject(bucketName, objectName, new File(filePath)); } finally { ossClient.shutdown(); } } ``` 其中,`endpoint`、`accessKeyId`、`accessKeySecret`、`bucketName` 参数为 OSS 的配置信息,`objectName` 参数为上传到 OSS 后的文件名,`filePath` 参数为生成的二维码文件路径。 完整代码示例: ``` public static void generateQRCodeAndUploadToOSS(String content, String endpoint, String accessKeyId, String accessKeySecret, String bucketName, String objectName) throws Exception { int width = 300; int height = 300; String format = "png"; Map<EncodeHintType, Object> hints = new HashMap<>(); hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints); Path path = FileSystems.getDefault().getPath(objectName); MatrixToImageWriter.writeToPath(bitMatrix, format, path); OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); try { ossClient.putObject(bucketName, objectName, new File(objectName)); } finally { ossClient.shutdown(); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值