问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

excel是什么意思

发布网友 发布时间:2022-04-19 10:06

我来回答

5个回答

懂视网 时间:2022-05-02 15:13

interface IExcelAccess { DataSet Load(ExcelConfig config); }
public class ExcelConfig
 {
 /// <summary>
 /// 文件存储路径
 /// </summary>
 public string Path { get; set; }

 /// <summary>
 /// 文件表头所在行索引
 /// </summary>
 public int HeaderIndex { get; set; }
 }

再来看一下使用NPOI的实现:

public class NpoiExcelAccess : IExcelAccess
 {
 /// <summary>
 /// 根据文件扩展名,获取workbook实例
 /// </summary>
 /// <param name="ext"></param>
 /// <returns></returns>
 private IWorkbook GetWorkBook(string ext, Stream stream)
 {
  IWorkbook workbook = null;

  switch (ext)
  {
  case ".xlsx":
   workbook = new XSSFWorkbook(stream);
   break;
  case ".xls":
   workbook = new HSSFWorkbook(stream);
   break;
  default:
   break;
  }

  return workbook;
 }

 /// <summary>
 /// 加载数据,可设置跳过前几行
 /// </summary>
 /// <param name="path"></param>
 /// <param name="skipRows"></param>
 /// <returns></returns>
 public DataSet Load(ExcelConfig config)
 {
  using (var fileStream = new FileStream(config.Path, FileMode.Open, FileAccess.Read))
  {
  var ds = new DataSet();
  var ext = Path.GetExtension(config.Path);

  // 新建IWorkbook对象 
  var workbook = this.GetWorkBook(ext, fileStream);

  for (int i = 0; i < workbook.NumberOfSheets; i++)
  {
   ISheet sheet = workbook.GetSheetAt(i);
   DataTable dt = GetDataTable(sheet, config.HeaderIndex);
   ds.Tables.Add(dt);
  }

  return ds;
  }
 }

 private DataTable GetDataTable(ISheet sheet, int headerIndex)
 {
  var dt = new DataTable();
  // 获取表头行
  var headerRow = sheet.GetRow(headerIndex);
  var cellCount = GetCellCount(sheet, headerIndex);

  // 设置表头
  for (int i = 0; i < cellCount; i++)
  {
  if (headerRow.GetCell(i) != null)
  {
   dt.Columns.Add(headerRow.GetCell(i).StringCellValue, typeof(string));
  }
  }
  
  for (int i = headerIndex + 1; i <= sheet.LastRowNum; i++)
  {
  IRow row = sheet.GetRow(i);
  DataRow dr = dt.NewRow();
  FillDataRow(row, ref dr);
  dt.Rows.Add(dr);
  }

  dt.TableName = sheet.SheetName;
  return dt;

 }

 private void FillDataRow(IRow row, ref DataRow dr)
 {
  if (row != null)
  {
  for (int j = 0; j < dr.Table.Columns.Count; j++)
  {
   ICell cell = row.GetCell(j);

   if (cell != null)
   {
   switch (cell.CellType)
   {
    case CellType.Blank:
    dr[j] = DBNull.Value;
    break;
    case CellType.Boolean:
    dr[j] = cell.BooleanCellValue;
    break;
    case CellType.Numeric:
    if (DateUtil.IsCellDateFormatted(cell))
    {
     dr[j] = cell.DateCellValue;
    }
    else
    {
     dr[j] = cell.NumericCellValue;
    }
    break;
    case CellType.String:
    dr[j] = cell.StringCellValue;
    break;
    case CellType.Error:
    dr[j] = cell.ErrorCellValue;
    break;
    case CellType.Formula:
    // cell = evaluator.EvaluateInCell(cell) as HSSFCell;
    dr[j] = cell.ToString();
    break;
    default:
    throw new NotSupportedException(string.Format("Catched unhandle CellType[{0}]", cell.CellType));
   }
   }
  }
  }
 }

 /// <summary>
 /// 获取表头列数
 /// </summary>
 /// <param name="sheet"></param>
 /// <param name="skipRows"></param>
 /// <returns></returns>
 private int GetCellCount(ISheet sheet, int headerIndex)
 {
  var headerRow = sheet.GetRow(headerIndex);

  return headerRow.LastCellNum;
 }
 }

 

最后看一下使用OLEDB的实现,这里,我只实现了excel2003的版本,07版本的总是失败,查了原因,是需要在本机安装一个组件才能支持导入.xlsx文件。

 public class OleDbExcelAccess : IExcelAccess
 {
 private string strConn;

 public OleDbExcelAccess()
 {
  //TODO 需要根据扩展名,来决定 使用哪一种连接字符串
  strConn = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = {0};Extended Properties=‘Excel 8.0;IMEX=1;HDR=NO‘";
 }

 public DataSet Load(ExcelConfig config)
 {
  var ds = new DataSet();
  var sheets = GetSheetNames(config.Path);
  var strConnTmp = string.Format(strConn, config.Path);

  foreach (string sheet in sheets)
  {
  using (var oleConn = new OleDbConnection(strConnTmp))
  {
   var strsql = "SELECT * FROM [" + sheet + "]";
   var oleDaExcel = new OleDbDataAdapter(strsql, oleConn);
   oleConn.Open();
   oleDaExcel.Fill(ds, sheet);
  }
  }

  return ds;
 }

 /// <summary>
 /// 获取Excel的所有的sheet
 /// </summary>
 /// <param name="path"></param>
 /// <returns></returns>
 private string[] GetSheetNames(string path)
 {
  DataTable dt = new DataTable();
  if (File.Exists(path))
  {
  string strConnTmp = string.Format(strConn, path);
  using (var conn = new OleDbConnection(strConnTmp))
  {
   conn.Open();
   //返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等 
   dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
  }
  //包含excel中表名的字符串数组
  var sheetNames = new List<string>();
  for (int k = 0; k < dt.Rows.Count; k++)
  {
   string tableName = dt.Rows[k]["TABLE_NAME"].ToString();
   //修正出现兼容性视图名称时过滤表名
   if (!tableName.Substring(tableName.Length - 1).Equals("_"))
   {
   sheetNames.Add(tableName);
   }
  }
  return sheetNames.ToArray();

  }
  return null;

 }
 }

 

最后看一下客户端的调用 :

 private void TestExcelImport()
 {
  var excelFile = Path.Combine("C:\Users\hankk\Desktop\ICON", "2003版本.xls");

  ExcelConfig config = new ExcelConfig()
  {
  Path = excelFile,
  HeaderIndex = 1
  };

  IExcelAccess npoiAccess = new NpoiExcelAccess();
  var npoiDs = npoiAccess.Load(config);

  IExcelAccess oleDbAccess = new OleDbExcelAccess();
  var oleDs = oleDbAccess.Load(config);
 }

 

代码已上传到github: https://github.com/hankuikuide/ExcelAccessor

 

Excel转化成DataTable实现:NPOI和OLEDb

标签:book   error   sub   mat   ada   []   实例   add   bin   

热心网友 时间:2022-05-02 12:21

excel释义

Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。

直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件。

在1993年,作为Microsoft Office的组件发布了5.0版之后,Excel就开始成为所适用操作平台上的电子制表软件的霸主。

excel函数

在 Excel中,函数实际上是一个预先定义的特定计算公式。

按照这个特定的计算公式对一个或多个参数进行计算,并得出一个或多个计算结果,叫做函数值。使用这些函数不仅可以完成许多复杂的计算,而且还可以简化公式的繁杂程度。

简介

为了满足各种数据处理的要求,Excel提供了大量函数供用户使用,函数是系统预先编制好的用于数值计算和数据处理的公式,使用函数可以简化或缩短工作表中的公式,使数据处理简单方便。

 Excel 2003提供了丰富的函数,如财务函数、日期与时间函数、数值与三角函数、统计函数、查找与引用函数、数据库函数、文字函数、逻辑函数、信息函数等。

热心网友 时间:2022-05-02 13:39

excel
[英][ɪk'sel][美][ɪkˈsɛl]
vt.优于,擅长;
vi.胜过;
Microsoft Excel是微软公司的办公软件Microsoft office的组件之一,是由Microsoft为Windows和Apple Macintosh操作系统的电脑而编写和运行的一款试算表软件。Excel 是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理、统计分析和辅助决策操作,广泛地应用于管理、统计财经、金融等众多领域。

热心网友 时间:2022-05-02 15:14

付费内容限时免费查看回答释义:

vt. 超过;擅长

vi. (在某方面)胜过(或超过)别人

例句:

No one knows what this mysterious person excels in.

没人知道这个神秘人擅长什么。

词组:

excel inv. 在……方面胜过;在……方面很擅长

excel at突出;擅长于

很多人在办公或学习的时候,经常使用到EXCEL电子表格。 那么,您知道电子表格中的EXCEL这个名称,代表什么意思吗? 下面我给您介绍介绍EXCEL这个名称的缘由。 excel不是什么单词的缩写,它本身就是一个单词,不过却是由excellent引申而来的。 EXCEL单词的含义是:优秀的、擅长于、胜于、优于…… 微软公司Microsoft的电子表格,取名为EXCEL,就说明了,微软公司Microsoft自认为EXCEL电子表格是很优秀的。 或者可以这样来理解,微软的人认为,他们的电子表格,优于其它电子表格、胜于其它电子表格,暗示他们的电子表格是最优秀的。因为优于其它人的、胜于其它人的,那么,还有谁能比得过他们的呢? EXCEL不仅代表了微软公司Microsoft对电子表格的研发

热心网友 时间:2022-05-02 17:05

&是连接符 如a1&a2 则将两个单元格连接起来 ""在excel里面表示空值的意思
在excel中一般用到""基本上都是要进行逻辑判断的,在各种程序设计也是这样的。注意单元格是格式是智能的,默认为数值格式,在数值格式中的没有就是0
你参加运算 0&""或者0+0&"" 将这个连接起来看到的还是0。
还有:""也可以表示输入文本 比如在vba代码当中cells(1,1)="你好" 或者cells(1,1)="123"这样都表示文本输入 则 A1单元格的123也就变成文本格式了 。实际上""就是英文的两个引号,引号中间的就是引用文本 中间没有就表示空值(没有)中间空一格 ,如=0&" "&0 结果就是0 0 这样显示的。
如果你逻辑判断一下就不同了,比如:=if((A1+B1)&""=0,"",((A1+B1)&"")这样就返回空值了。
EXCEL是什么意思呢?

1、EXCEL是优于,擅长,胜过的意思,另外Microsoft Excel简称Excel是微软公司的办公软件Microsoft office的组件之一,就是我们俗称的”电子表格“。2、EXCEL发音:英式发音: [ɪkˈsel] ; 美式发音: [ɪkˈsɛl]3、EXCEL在不同情境下的应用:第三人称单数: excels 现...

excel是什么意思中文

excel中文的意思是优于、胜过的意思,可以用作不及物动词和及物动词,在Windows系统中,Excel是一款制作表格的工具。Excel常用技巧:技巧一:点击进入到数据界面,然后点击排序和筛选,点击高级,进入到高级设置界面,选择将筛选结果复制到其他位置,即可把不重复的数据进行筛选。技巧二:点击进入到公式界面,...

EXCEL是什么东西?

excel是电子表格的意思。excel是微软公司的办公软件Microsoftoffice的重要组件之一,也就是微软办公套装软件比较关键的,我们使用它主要是使用表格对数据进行处理、统计、分析和辅助决策操作,excel办公软件被广泛地使用于管理、统计、财经、金融等很多领域内。excel是Microsoft为使用Windows和AppleMacintosh操作系统的...

excel英语什么意思

excel的意思是:及物动词,优于,擅长;不及物动词,胜过;名词, [计] 电子表格(软件名称)。excel的读音:英 [ɪkˈsel]、美 [ɪkˈsɛl]。excel的变换形式:过去式:excelled; 过去分词:excelled; 现在分词:excelling。例句:一、及物动词 1、His wife exce...

在计算机中excel是什么意思?

excel翻译过来是“表格”的意思,计算机里excel是制作表格的一种工具。相应地,计算机里还有word用于制作文档,ppt制作幻灯片。excel的图标

excel是什么意思?怎么读?

Excel是一个广泛使用的电子表格软件,用于数据处理、数据分析、数据可视化等。它的读音为英式发音/ˈeksəl/或美式发音/ˈɛksəl/。详细解释:Excel的定义:Excel是Microsoft Office套件中的一个重要组件,用于处理表格数据。它提供了强大的数据计算、数据分析、数据可视化等功能...

excel是什么意思

Excel是一种广泛应用于数据分析、处理的电子表格软件。它是微软公司的Office办公套件中的核心组件之一。以下详细介绍Excel的含义和主要功能。Excel的基本含义 Excel这个术语源自“Excel”这个词组,意为“超越”或“出类拔萃”。这款软件最初设计用于制作电子表格,通过直观的界面和强大的功能,使用户能够更...

Excel是什么意思,什么是Excel

Excel,作为Microsoft Office办公套件中的关键组件,是一个强大的电子表格处理工具。它的核心功能在于以表格形式组织和管理数据,包括输入、计算、分析、制表和统计,同时支持生成各种图表,以直观展现数据。Excel的易用性使得它在财务、行政、金融、经济、统计和审计等多个领域得到了广泛应用。用户在Excel中...

excel是什么意思?

Excel的意思 Excel是一款广泛使用的电子表格软件。详细解释 1. 软件定义与功能:Excel是微软公司推出的Office办公套件中的核心组件之一,主要用于数据的处理、分析和可视化。用户可以通过Excel创建、编辑和共享电子表格,其中包含文本、数字、公式、图表等多种元素。2. 数据处理能力:Excel具备强大的数据处理功能...

Excel是什么意思-Excel介绍

Excel是什么意思答:Excel是一款广泛使用的电子表格软件,由微软公司开发。Microsoft Excel是个人计算机上用于数据处理的电子表格程序,它提供了直观的用户界面和强大的计算功能以及图表工具。特点一、数据组织与管理 用户可以在Excel中创建表格,输入和管理数据,还可以利用排序、筛选等功能快速找到所需信息。特点...

excel办公软件基础知识 excel是谁的 excel 办公软件Excel是什么意思啊 excel英语是什么意思 excel常用技巧大全 excel的主要功能和用途 excella读音 excel可以做什么
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
最火的欧美铃声排行榜(35岁男人用的手机铃声) 备孕吃什么好 吃芝麻酱可防胎儿畸形 备孕吃什么好 5类食物备孕女人一定... 准妈妈吃出芝麻酱的几大好处 ...上是所有北方人火锅必备,它除了好吃之外,还有什么其他功效? 森内贵宽扩展 森内贵宽森内贵宽---森田贵宽---Taka 森内贵宽基本信息 日本哪些乐队组合的歌曲是最棒的? 求NEWS成员里声音很孩子气的成员 cctvnews 里面播过的一个乐队的歌 女主唱 歌曲很有特点 歌曲只放了一... 新员工的入职手续如何办理 新入职,应该签订哪些必要的手续? 办理公司入职手续需要带的证件有哪些 如何做好新员工入职手续的办理工作 入职第一天带什么物品 中国平安入职都要哪些证件 新人入职要签哪些合同?签合同时要注意什么? 员工入职准备有哪些,员工入职手续如何办理? 岗前准备的主要步骤 去劳动局办理员工入职手续要带些什么 办理入职时候需要提供什么材料呢? 人事部对新员工入职后的工作该如何安排 单位入职材料? 办理入职手续当天都需要做些什么? 办理入职需要准备哪些 微信朋友圈总卡在处看不了其它的怎么办 三星s8手机。 为什么我的手机用来看微信朋友圈或者微信群发来的视频打开看都很慢半天缓存不来, 投保人、被保险人与受益人之间的关系你知道多少? 交强险的投保人受益人被保险人主体分别是谁 保险投保人和被保人是什么意思 在计算机中excel是什么意思? excel掌握27个技巧 excel怎么自学 什么是EXCEL excel原理 EXCEL是什么意思呢? 怎样看电脑excel是什么版本 50个工作中最常用excel技巧 excel怎么读? excel具有什么功能 Excel如何设置? EXCEL是什么软件? 直的意思是什么? 直的拼音是什么 直字是什么结构 直的意思是什么? 直.组词有哪些 直的笔顺怎么写 直组词有哪些 直&#16652;是什么意思?