.NET中Barcode Library的应用二

介绍

在上一篇中我已经简单介绍了这个函数库(条形码应用之一------------函数库的简介)。在这一篇中我将使用这个库提供更多的操作,希望对大家有用。

让我们来看下下面的设定:

我们有许多要处理的条形码。它们的类型被存储在Excel文件的一列中(如上图BarcodeType),它们的数据包含在另一列(BarcodeData)中。我们要做的是根据它们的类型和数据生成相应的条码并将他们存储在第三列(BarcodeImage)中。在物流交易或者超市中条码被用来识别商品。要记住商品是数目庞大种类繁多的,利用人工来处理条码太不明智了。

我们需要一个更好的方法来从Excel中获取数据。在这个条码函数库的版主下我们可以很容易地吧这项工作完成(这里下载https://freenetexcel.codeplex.com/)。请参照下面的代码:

样例代码

第一步:加载Excel文件:

Workbook workbook = new Workbook();
workbook.LoadFromFile("SourceFile.xlsx");
Worksheet sheet = workbook.Worksheets[];

第二步:用一个for循环得到Excel中的数据。

int i;
string barcodeType,barcodeData;
for (i = ; i<=sheet.AllocatedRange.Rows.Count(); i++)
{
      barcodeType = sheet.Range[i, ].Text;
      barcodeData = sheet.Range[i, ].Text;
}

第三步:生成条形码图片

BarcodeSettings barsetting = new BarcodeSettings();
barsetting.HasBorder = true;
barsetting.BorderWidth = 0.5F;
barsetting.ShowTextOnBottom = true;
barsetting.Data = barcodeData;
barsetting.Data2D = barcodeData;
barsetting.Type = (BarCodeType)Enum.Parse(typeof(BarCodeType), barcodeType);
               
BarCodeGenerator bargenerator = new BarCodeGenerator(barsetting);
Image barcodeimage = bargenerator.GenerateImage();
String fileName = String.Format("Image-{0}.png", i);
barcodeimage.Save(fileName);

第四步:将这些图片添加到Excel的指定区域。

sheet.Pictures.Add(i, , fileName);

结果

以下是最终Excel文件的效果截图:

.NET 中Barcode Library的应用二的更多相关文章

  1. 前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型

    前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型 前言(题外话): 有人说拖延症是一个绝症,哎呀治不好了.先不说这是一个每个人都多多少少会有的,也不管它究竟对生活有多么大的 ...

  2. android插件中或者library中获取asstes文件

    在插件中或者library的项目中把文件放在asstes,不能用context.getResources().getAssets().open(fileName)读取到流,会报FileNotFound ...

  3. 挂羊头卖狗肉蓄意欺骗读者——谭浩强《C程序设计(第四版)》中所谓的“按照C99”(二)

    挂羊头卖狗肉蓄意欺骗读者——谭浩强<C程序设计(第四版)>中所谓的“按照C99”(二) 在<谭C>p4:“本书的叙述以C99标准为依据”,下面从C89到C99的主要变化方面来看 ...

  4. 使用虚幻引擎中的C++导论(二-UE4基类)

    使用虚幻引擎中的C++导论(二) 第一,这篇是我翻译的虚幻4官网的新手编程教程,原文传送门,有的翻译不太好,但大体意思差不多,请支持我O(∩_∩)O谢谢. 第二,某些细节操作,这篇文章省略了,如果有不 ...

  5. Selenium2学习-022-WebUI自动化实战实例-020-JavaScript 在 Selenium 自动化中的应用实例之二(获取浏览器显示区域大小)

    前几篇文章中简略概述了,如何获取.设置浏览器窗口大小,那么我们该如何获取浏览器显示区域的大小呢?此文讲对此进行简略概述,敬请各位小主参阅.若有不足之处,敬请各位大神指正,不胜感激! 获取浏览器显示区域 ...

  6. 将Excel中数据导入数据库(二)

    在上篇文章中介绍到将Excel中数据导入到数据库中,但上篇文章例子只出现了nvachar类型,且数据量很小.今天碰到将Excel中数据导入数据库中的Excel有6419行,其中每行均有48个字段,有i ...

  7. 在KVM虚拟机中使用spice系列之二(USB映射,SSL,密码,多客户端支持)

    在KVM虚拟机中使用spice系列之二(USB映射,SSL,密码,多客户端支持) 发布时间: 2015-02-27 00:16 1.spice的USB重定向 1.1 介绍 使用usb重定向,在clie ...

  8. 【转】WPF中的Binding技巧(二)

    WPF中的Binding技巧(二)     接上篇, 我们来看一看Elementname,Source,RelativeSource 三种绑定的方式 1.ElementName顾名思义就是根据Ui元素 ...

  9. jQuery中的常用内容总结(二)

    jQuery中的常用内容总结(二) 转载请注明地址: http://www.cnblogs.com/funnyzpc/p/7571993.html 前言 距离上次博客更新已经有二十来天了(●′ω`●) ...

随机推荐

  1. Codeforces Round #361 (Div. 2) D

    D - Friends and Subsequences Description Mike and !Mike are old childhood rivals, they are opposite ...

  2. css单位:em,rem解释

    em:所有浏览器都符合:1em=16px;1.具有继承性2.em的根元素是body,当设置了根元素的大小时,大小是定义的数字乘以根元素定义的大小值 rem:1rem=16pxrem不具有继承性,其根元 ...

  3. flex的兼容

    父容器的 display 属性: .box{ display: -webkit-box; /* 老版本语法: Safari, iOS, Android browser, older WebKit br ...

  4. Python之路【第六篇】python基础 之面向对象(一)

    一.三大编程范式 1.面向过程编程 2.函数式编程 3.面向对象编程 二.编程进化论 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 2.从上述的指令中提取重复的代码块或逻辑,组织到一起(比 ...

  5. [LintCode] Best Time to Buy and Sell Stock 买卖股票的最佳时间

    Say you have an array for which the ith element is the price of a given stock on day i. If you were ...

  6. MVC和MVP的区别

    MVC: Model - View - Controller MVP: Model - View - Presenter MVC和MVP到底有什么区别呢? 从上图可以看到在MVC里,View是可以直接 ...

  7. iOS单例详解

    单例:整个程序只创建一次,全局共用. 单例的创建 // SharedPerson.h 文件中 + (instancetype)share; // SharedPerson.m 文件中 static S ...

  8. NLP常用工具

    1.统计类工具:可参见[统计学习常用Python扩展包] 2.linux自带工具:可参见[[整理]Linux常用文本处理命令] 3.简繁转换工具:opencc Open Chinese Convert ...

  9. Android Support Library

    title: Android Support Library tags: Support Library,支持库 grammar_cjkRuby: true --- DATE: 2016-5-13. ...

  10. ASP.NET Core Kestrel 中使用 HTTPS (SSL)

    在ASP.NET Core中,如果在Kestrel中想使用HTTPS对站点进行加密传输,可以按照如下方式 申请证书 这一步就不详细说了,有免费的和收费的,申请完成之后会给你一个*.pfx结尾的文件. ...