为什么使用Excelpackage?

ExcelPackage的优势:解放了在程序中设置格式的弊端,总体原理为:在相应路径下放置一个Excel模板,执行导出操作时按照模板样式在指定行插入数据,构建出一个模板样式的新Excel。

 

excelpackage的官网:http://excelpackage.codeplex.com/,里面有所需的.dll文件和demo程序。

 

在程序中使用期功能时,using OfficeOpenXml; 指令一定要加上;

 

 

在网上的代码案列都是很多要么断章取义,要么就是代码一大堆,不舒服。

 

写数据往Excel中:

以下几步:

1.新建一个xlsx文件

2.使用using(ExcelPackage .....){}代码块

3.在上述代码块中,得到一个workshoot;

4.利用workshoot.Cells[,].value=""可以在特定格子里写入自己的内容;

5.写完记得保存,package.save();

这样就完了。(更多的Excel样式问题和高级的外观功能以后再讲)

staticvoid Main(string[] args)

{
Write();

}

 

static void Write()

{
FileInfo newFile = new FileInfo(@"d:\test.xlsx");

if (newFile.Exists)

{
newFile.Delete();

newFile = newFileInfo(@"d:\test.xlsx");

}

using (ExcelPackage package = new ExcelPackage(newFile))

{
ExcelWorksheet worksheet =package.Workbook.Worksheets.Add("test");

worksheet.Cells[1, 1].Value ="名称";

worksheet.Cells[1, 2].Value ="价格";

worksheet.Cells[1, 3].Value ="销量";

 

worksheet.Cells[2, 1].Value ="大米";

worksheet.Cells[2, 2].Value =56;

worksheet.Cells[2, 3].Value =100;

 

worksheet.Cells[3, 1].Value ="玉米";

worksheet.Cells[3, 2].Value =45;

worksheet.Cells[3, 3].Value =150;

 

worksheet.Cells[4, 1].Value ="小米";

worksheet.Cells[4, 2].Value =38;

worksheet.Cells[4, 3].Value =130;

 

worksheet.Cells[5, 1].Value ="糯米";

worksheet.Cells[5, 2].Value =22;

worksheet.Cells[5, 3].Value =200;

 

package.Save();

}

 

}

 

读数据:

和写数据类似,区别就是把原来的赋值语句修改成为取值语句就好了。

 

string tmp = worksheet.Cells[1,1].Text;

得到的是字符串;

 

 

样式问题: sheet.Cells["A2:C5"].Style.Border.BorderAround(OfficeOpenXml.Style.ExcelBorderStyle.Thin,Color.Black);

 

可以在A2:C5的矩形区域画一个黑色、细线框框;

---------------------------------------------------------------------------------------------------------------

增加样式:

sheet.Cells["A2:C5"].Style.Font.Bold = true; //指定区域设置字体加粗
sheet.Cells["A2:C5"].Style.Font.Color.SetColor(Color.Green); //指定区域设置字体颜色


sheet.Cells["A2:C5"].Style.Fill.PatternType = ExcelFillStyle.Solid; //指定区域设置图案类型 --下一步设置背景颜色的前置条件
sheet.Cells["A2:C5"].Style.Fill.BackgroundColor.SetColor(Color.Blue); //指定区域设置背景颜色


sheet.Cells["A2:C5"].Merge = true; //指定区域合并


————————————————