zoukankan      html  css  js  c++  java
  • Aspose.Cell 导出和导入Excel

    .NET使用Aspose.Cells导入导出Excel文件

     

    【摘要】

    在.NET软件开发项目中,开发人员经常会碰到Excel导入导出的需求,而传统的使用Microsoft.Office.Interop 或者 Microsoft.ACE.OLEDB 都具有一些使用限制:

    l  需要在服务器端装Excel或者Microsoft.ACE.OLEDB,且及时更新它,以防漏洞,还需要设定权限允许.NET访问COM+,如果在导出过程中出问题可能导致服务器宕机。

    l  Excel会把只包含数字的列进行类型转换,本来是文本型的,Excel会将其转成数值型的,比如编号000123会变成123。

    l  导出时,如果字段内容以“-”或“=”开头,Excel会把它当成公式进行,会报错。

    l  Excel会根据Excel文件前8行分析数据类型,如果正好你前8行某一列只是数字,那它会认为该列为数值型,自动将该列转变成类似1.42702E+17格式,日期列变成包含日期和数字的。

    本文将介绍Excel导入导出的另一种方法:Aspose.Cells,它能克服Microsoft.Office.Interop 或者 Microsoft.ACE.OLEDB的这些缺点

     

    【正文】

    使用Aspose.Cells

    Aspose.Cells是比一个比较好用的第三方类库,使用它导入导出Excel不需要服务器安装Excel软件。

    利用Aspose.Cells导入Excel

    第一步:首先必须要下载Aspose.Cells.dll文件,然后在在项目中引用,不需安装。

    第二步:在CS文件中添加引用。

    using Aspose.Cells;

    第三步:具体使用方法

    l  将用户选择的Excel文件导入到DataTable对象中

    if (!fileLoad.HasFile)

      {

          ShowMessage("请选择要导入的Excel文件");

          return;

      }

       string ex = fileLoad.FileName.Split('.').Last();

       if (ex != "xlsx" && ex != "xls")

          {

            ShowMessage("模板必须是Excel文件,请下载正确的模板");

                  return;

          }

         Workbook workbook = new Workbook(fileLoad.FileContent);

      Worksheet worksheet = workbook.Worksheets[0];

      Cells cells = worksheet.Cells;

      DataTable dt;

      dt = cells.ExportDataTableAsString(0, 0, cells.MaxDataRow + 1, cells.MaxDataColumn + 1, true);

     

    上面的代码是将用户选择的Excel文件的内容导入到DataTable,当然Aspose.Cells还提供将Excel的数据导入到GridView、DataView等等数据绑定控件并支持众多参数设置的方法。通过这些方法,开发人员可以非常灵活将Excel文件的数据导入。

    l  将数据导出到Excel文件,并下载。

              Workbook workbook = new Workbook();

                Worksheet worksheet = workbook.Worksheets[0];

                Cells cells = worksheet.Cells;

                DataTable dt = service.GetAllConsumeByFilter(txtFilterMobile.Text,

                    txtFilterMobile.Text, txtBeginDate.Text, txtEndDate.Text);

                dt.Columns.Remove("ID");

                cells.ImportDataTable(dt, true, "a1");

                workbook.Save(HttpContext.Current.Response, HttpUtility.UrlEncode("消费列表.xlsx", System.Text.Encoding.UTF8), ContentDisposition.Attachment,new OoxmlSaveOptions(SaveFormat.Xlsx));

    导出Excel的方法也很简单,上面的代码作用是将DataTable对象的数据导出到Excel文件,并提供用户下载,Aspose.Cells也提供了多种导出Excel方法,开发人员可以使用Aspose.Cells将DataView、GridView等等数据控件的数据导出到Excel.

            

    l  Aspose.Cells 对单元格进行操作

       string path = HttpContext.Current.Server.MapPath("~");

                path = path.Substring(0, path.LastIndexOf("\"));

                path += @"HelloWorld.xlsx";

                Workbook workbook = new Workbook(path);

                Worksheet worksheet = workbook.Worksheets[0];

                Cells cells = worksheet.Cells;

                cells["A1"].PutValue("Cell Value");

                style.Font.IsBold = true;

                cells["A1"].SetStyle(style);

                cells[0, 1].PutValue("Cell Value Type");

                    switch (cells[A, 0].Type)

                    {

                        case CellValueType.IsBool:

                            cells[A, 1].PutValue("IsBool");

                            break;

                        case CellValueType.IsDateTime:

                            cells[A, 1].PutValue("IsDateTime");

                            break;

                        case CellValueType.IsNull:

                            cells[A, 1].PutValue("IsNull");

                            break;

                        case CellValueType.IsNumeric:

                            cells[A, 1].PutValue("IsNumeric");

                            break;

                        case CellValueType.IsString:

                            cells[A, 1].PutValue("IsString");

                            break;

                        case CellValueType.IsUnknown:

                            cells[i, 1].PutValue("IsUnknown");

                            break;

                }

                        

             上面的代码是对单元格进行赋值、设置样式、检查单元格数据类型,可以说Aspose.Cells的使用是非常灵活和简单的。

  • 相关阅读:
    Adobe Photoshop CS6+blend4 获取png图片data数据
    Git使用教程
    wpf-Datagrid每行combobox设置不同值
    wpf-阿里巴巴图库获取path data数据
    wpf-效果
    wpf-datagrid/listbox隔行换色
    wpf-DataGrid分页
    【学习笔记】委托、匿名方法、Lambda表达式和事件
    【学习笔记】泛型
    【学习笔记】VS常用快捷键
  • 原文地址:https://www.cnblogs.com/ysjBoke/p/4828091.html
Copyright © 2011-2022 走看看