.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的使用是非常灵活和简单的。

转载于:https://www.cnblogs.com/ysjBoke/p/4828091.html

Aspose.Cell 导出和导入Excel相关推荐

  1. 使用Aspose.Cell控件实现Excel高难度报表的生成(三)

    在之前几篇文章中,介绍了关于Apsose.cell这个强大的Excel操作控件的使用,相关文章如下: 使用Aspose.Cell控件实现Excel高难度报表的生成(一) 使用Aspose.Cell控件 ...

  2. C# 导出和导入excel

    #region 导出Excel/// <summary>/// 导出Excel/// </summary>/// <param name="page" ...

  3. 【vue + Excel表格导入与导出】导入Excel并展示在el-table表格中,表格导出为Excel文件

    注:末尾有完整代码 效果图 Excel 1.下载依赖 xlsx是导入所需依赖 file-saver是导出所需依赖 npm install xlsx --save npm install file-sa ...

  4. NPOI导出和导入Excel,Word和PDF

    Models文件夹 NPOIModel.cs namespace NPOItest.Models {using System;using System.Data.Entity;using System ...

  5. Linux Sql server 导出,SQL Server导出和导入Excel

    从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句: /*============================================================= ...

  6. Easypoi导出、导入excel

    所需pom依赖: <!-- 引入EasyPoi包 --><dependency><groupId>cn.afterturn</groupId><a ...

  7. 使用Aspose.Cell for Java操作Excel(已去除水印)

    首先,在src下新建一个"license.xml", 内容如下: 1 <License> 2 <Data> 3 <Products> 4 < ...

  8. 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出

    我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的 ...

  9. vue之Excel导出和导入

    vue之Excel导出和导入 vue之Excel导出和导入 Excel导入 Excel导出 Excel多级表头导出 vue之Excel导出和导入 Excel导入 注意:多级表头的Excel导出排版出现 ...

  10. java excel导出2007_java操作excel文件,实现批量导出,和导入

    一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Exc ...

最新文章

  1. 创新工场提出中文分词和词性标注模型,性能分别刷新五大数据集| ACL 2020​
  2. FPGA In/Out Delay Timing Constaint
  3. python 装饰器实现事件绑定_Python装饰器是怎么实现的?
  4. 如何优雅的绘制一棵省市区三级可选择的树?
  5. java map是大括号_Java8如何基于flatMap处理异常函数
  6. Python笔记-假设检验之单样本T检验
  7. mysql远程登录备份_mysql实现自动远程备份一办法(转)
  8. (网页)java数组去重总结(转)
  9. 前置仓没活路?盒马mini要做行业终极目标还为时尚早
  10. -bash : ** : command not found的问题解决(图文详解)
  11. 依据经纬度解析商圈scala实现
  12. Repeater绑定数据库
  13. ubuntu安装rabbitvcs
  14. Discuz仿今日头条模板/Discuz新闻资讯商业版GBK模板
  15. firefox火狐同步windows和linux书签
  16. larval 策略模式
  17. ad16 怎么设置单独元件间距_AD软件中怎么添加不同元素之间的间距规则?
  18. java POI创建Excel示例(xslx和xsl区别 )
  19. 面向对象三大特性及关键字
  20. c语言中3次方函数图像,三次函数的性质

热门文章

  1. JVM基础学习之基本概念、可见性与同步
  2. mysql 主从故障恢复
  3. X 1 BT5kali
  4. 代码分析测试SaaS平台Code Climate获得450万美元A轮融资
  5. Centos7 安装编译nbd模块步骤
  6. bilibili直播: Vue.js Podcast(小记录)~~~
  7. Swift - 使用下划线(_)来分隔数值中的数字
  8. Jquery操作select选项集合,判断集合中是否存在option
  9. 移动目录下的隐藏文件
  10. AGC020C Median Sum