Aspose.Cells.dll操作exel

来源:互联网 发布:大众软件订阅 编辑:程序博客网 时间:2024/05/19 04:07


1.创建execl(不需要服务器或者客户端安装office)

public void DCExexl(DataTable dt)
{
  Workbook wb = new Workbook();
  Worksheet ws = wb.Worksheets[0];
  Cells cell = ws.Cells;

 

 cell[0, 0].PutValue("ID");//添加数据到第0行和第0列

 cell.SetRowHeight(0, 0);设置行高

 Aspose.Cells.Style style1 = wb.Styles[wb.Styles.Add()];
 style1.HorizontalAlignment = TextAlignmentType.Right;//文字居中

 style1.Font.Name = "宋体";
 style1.Font.IsBold = true;//设置粗体
 style1.Font.Size = 12;//设置字体大小

 cell[0, 0].SetStyle(style1);

 cell.SetColumnWidth(0, 10.00);//列宽

Range range = cell.CreateRange(0, 0, 1, 1);//合并单元格
range.Merge();

 string FileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
 HttpResponse response = Page.Response;
 response.Buffer = true;
 response.Charset = "utf-8";
 response.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
 response.ContentEncoding = System.Text.Encoding.UTF8;
 response.ContentType = "application/ms-excel";
 response.BinaryWrite(wb.SaveToStream().ToArray());
 response.End();

}

2.读取execl

public DataTable GetDataTable(string path)
{
 Workbook workbook = new Workbook();
 workbook.Open(path);
 Cells cells = workbook.Worksheets[0].Cells;
 DataTable dt = new DataTable();
 bool d = true;//防止表头重复加载
 for (int i = 0; i < cells.MaxDataRow + 1; i++)
 {
  DataRow row = dt.NewRow();
  for (int j = 0; j < cells.MaxDataColumn + 1; j++)
   {
    if (d) {
     dt.Columns.Add(cells[0, j].StringValue.Trim());
    }
 
   row[j] = cells[i + 1, j].StringValue.Trim();
 }
  dt.Rows.Add(row);
  d = false;
}
return dt;
}