C# 插入条码到Excel指定单元格
.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[0];
workbook.LoadFromFile("SourceFile.xlsx");
Worksheet sheet = workbook.Worksheets[0];
第二步:用一个for循环得到Excel中的数据。
int i;
string barcodeType,barcodeData;
for (i = 2; i<=sheet.AllocatedRange.Rows.Count(); i++)
{
barcodeType = sheet.Range[i, 1].Text;
barcodeData = sheet.Range[i, 2].Text;
}
string barcodeType,barcodeData;
for (i = 2; i<=sheet.AllocatedRange.Rows.Count(); i++)
{
barcodeType = sheet.Range[i, 1].Text;
barcodeData = sheet.Range[i, 2].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);
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, 3, fileName);
结果
以下是最终Excel文件的效果截图: