当前位置:  编程语言>c#/asp.net

c#如何生成Excel(.xls和.xlsx)文件

 
分享到:
    发布时间:2013-9-23  


    本文导语:  在工作中经常遇到需要用c#生成Excel文件(.xls和.xlsx格式),完全免费开源的ExcelLibrary是一个不错的选择。ExcelLibrary项目的地址为: https://code.google.com/p/excellibrary/ExcelLibrary源码下载地址: https://code.google.com/p/excellibrary/downloads/li...

 在工作中经常遇到需要用c#生成excel文件(.xls和.xlsx格式),完全免费开源的excellibrary是一个不错的选择。

ExcelLibrary项目地址为:

https://code.google.com/p/excellibrary/

ExcelLibrary源码下载地址:  

https://code.google.com/p/excellibrary/downloads/list

  excellibrary提供了一个基于本地.net应用程序的解决方案,可以用来新建,读取和修改excel文件而不需要使用com或者oledb。现在已经支持.xls文件格式,.xlsx(excel 2007)也即将被支持。

ExcelLibrary官方示例代码:

//create new xls file
string file = "C:\newdoc.xls";
Workbook workbook = new Workbook();
Worksheet worksheet = new Worksheet("First Sheet");
worksheet.Cells[0, 1] = new Cell((short)1);
worksheet.Cells[2, 0] = new Cell(9999999);
worksheet.Cells[3, 3] = new Cell((decimal)3.45);
worksheet.Cells[2, 2] = new Cell("Text string");
worksheet.Cells[2, 4] = new Cell("Second string");
worksheet.Cells[4, 0] = new Cell(32764.5, "#,##0.00");
worksheet.Cells[5, 1] = new Cell(DateTime.Now, @"YYYY-MM-DD");
worksheet.Cells.ColumnWidth[0, 1] = 3000;
workbook.Worksheets.Add(worksheet);
workbook.Save(file);
// open xls file
Workbook book = Workbook.Load(file);
Worksheet sheet = book.Worksheets[0];
 // traverse cells
 foreach (Pair<Pair<int, int>, Cell> cell in sheet.Cells)
 {
     dgvCells[cell.Left.Right, cell.Left.Left].Value = cell.Right.Value;
 }
 // traverse rows by Index
 for (int rowIndex = sheet.Cells.FirstRowIndex;
rowIndex <= sheet.Cells.LastRowIndex; rowIndex++)
 {
     Row row = sheet.Cells.GetRow(rowIndex);
     for (int colIndex = row.FirstColIndex;
colIndex <= row.LastColIndex; colIndex++)
     {
         Cell cell = row.GetCell(colIndex);
     }
 }


ExcelLibrary示例代码二(从数据库中获取数据然后创建Excel文件):

//Create the data set and table
DataSet ds = new DataSet("New_DataSet");
DataTable dt = new DataTable("New_DataTable");
//Set the locale for each
ds.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;
dt.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;
//Open a DB connection (in this example with OleDB)
OleDbConnection con = new OleDbConnection(dbConnectionString);
con.Open();
//Create a query and fill the data table with the data from the DB
string sql = "SELECT Whatever FROM MyDBTable;";
OleDbCommand cmd = new OleDbCommand(sql, con);
OleDbDataAdapter adptr = new OleDbDataAdapter();
adptr.SelectCommand = cmd;
adptr.Fill(dt);
con.Close();
//Add the table to the data set
ds.Tables.Add(dt);
//Here's the easy part. Create the Excel worksheet from the data set
ExcelLibrary.DataSetHelper.CreateWorkbook("MyExcelFile.xls", ds);


另外,还可以使用EPPlus, EPPlus支持生成Excel 2007/2010 格式的文件(.xlsx) 其主页为:

http://epplus.codeplex.com/

EPPlus项目基于LGPL开源协议

  • 本站(WWW.169IT.COM)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.169IT.COM)站内文章除注明原创外,均为转载,整理或搜集自网络.欢迎任何形式的转载,转载请注明出处.
    转载请注明:文章转载自:[169IT-IT技术资讯]
    本文标题:c#如何生成Excel(.xls和.xlsx)文件
相关文章推荐:
  • 如何为某个内核文件生成.i文件
  • vim生成的.cpp~是什么文件?我使用vim编辑的时候出现了好多.cpp~文件
  • 请问,有什么办法可以把html文件生成pdf/excel格式的文件
  • 怎样生成用“tar zxf 文件“来解压的*.tar.gz文件
  • shell脚本剪切文件文件,并生成新文件的问题
  • ********怎么从*.c文件生成*.sl库文件********
  • 请问用GCC 编译,如何生成MAP文件?就是内存的分布映像文件?
  • 根据Hibernte的cfg文件生成sql文件
  • 如何生成任意文件名的.out 文件
  • 实现core文件自动生成配置文件的方法
  • cpp文件如何自动生成Makefile文件
  • sed 从一个文件生成另一个文件问题
  • 通过shell解析文件,并根据解析内容生成新的文件。
  • Vim 打开.txt文件后会生成.txt~文件,如何取消?
  • ftp连接下无法删除程序生成的文件(cache文件)
  • bash里面,怎么去等一个文件夹有文件生成呢
  • gcc编译的程序生成的map文件问题
  • jbuilier6中如何生成exe文件?
  • 如何修改libnids的makefile文件,让编译生成的库文件放在本地路径
  • AIX 获取文件生成时间


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

    浙ICP备11055608号