广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#把EXCEL数据转换成DataTable
  • 943
分享到

C#把EXCEL数据转换成DataTable

2024-04-02 19:04:59 943人浏览 泡泡鱼
摘要

C#实现EXCEL表格转DataTable C#代码实现把excel文件转化为DataTable,根据Excel的文件后缀名不同,用不同的方法来进行实现,下面通过根据Excel文件的

C#实现EXCEL表格转DataTable

C#代码实现把excel文件转化为DataTable,根据Excel的文件后缀名不同,用不同的方法来进行实现,下面通过根据Excel文件的两种后缀名(*.xlsx和*.xls)分别来实现。获取文件后缀名的方法是:Path.GetExtension(fileName)方法,通过引用:using System.IO;实现代码如下:(其中以下代码中出现的filename都是带盘符的绝对路径)

根据Excel文件的后缀名不同调用的主方法

private DataTable FileToDataTable(string fileName)
    {
        DataTable dt = new DataTable();
        string extendName = Path.GetExtension(fileName);//获取文件的后缀名
        switch (extendName.ToLower())
        {
            case ".xls":
                dt = XlsToDataTable(fileName);
                break;
            case ".xlsx":
                dt = XlsxToDataTable(fileName);
                break;
            default:
                break;
        }
        return dt;
    }

XlsToDataTable()

private DataTable XlsToDataTable(string fileName)
    {
        DataTable dataTable = new DataTable();
        Stream stream = null;
        try
        {
            stream = File.OpenRead(fileName);
            HSSFWorkbook hssfworkbook = new HSSFWorkbook(stream);
            HSSFSheet hssfsheet = (HSSFSheet)hssfworkbook.GetSheetAt(hssfworkbook.ActiveSheetIndex);
            HSSFRow hssfrow = (HSSFRow)hssfsheet.GetRow(0);
            int lastCellNum = (int)hssfrow.LastCellNum;
            for (int i = (int)hssfrow.FirstCellNum; i < lastCellNum; i++)
            {
                DataColumn column = new DataColumn(hssfrow.GetCell(i).StrinGCellValue);
                dataTable.Columns.Add(column);
            }
            dataTable.TableName = hssfsheet.SheetName;
            int lastRowNum = hssfsheet.LastRowNum;
            //列名后,从TABLE第二行开始进行填充数据
            for (int i = hssfsheet.FirstRowNum + 1; i < hssfsheet.LastRowNum; i++)//
            {
                HSSFRow hssfrow2 = (HSSFRow)hssfsheet.GetRow(i);
                DataRow dataRow = dataTable.NewRow();
                for (int j = (int)hssfrow2.FirstCellNum; j < lastCellNum; j++)//
                {
                    dataRow[j] = hssfrow2.GetCell(j);//
                }
                dataTable.Rows.Add(dataRow);
            }
            stream.Close();
        }
        catch (Exception ex)
        {
            ScriptManager.ReGISterStartupScript(Page, GetType(), "alertFORM", "alert(' Xls to DataTable: " + ex.Message + "');", true);
        }
        finally
        {
            if (stream != null)
            {
                stream.Close();
            }
        }
        return dataTable;
    }

XlsxToDataTable()

public DataTable XlsxToDataTable(string vFilePath)
    {
        DataTable dataTable = new DataTable();
        try
        {
            SLDocument sldocument = new SLDocument(vFilePath);
            dataTable.TableName = sldocument.GetSheetNames()[0];
            SLWorksheetStatistics worksheetStatistics = sldocument.GetWorksheetStatistics();
            int startColumnIndex = worksheetStatistics.StartColumnIndex;
            int endColumnIndex = worksheetStatistics.EndColumnIndex;
            int startRowIndex = worksheetStatistics.StartRowIndex;
            int endRowIndex = worksheetStatistics.EndRowIndex;
            for (int i = startColumnIndex; i <= endColumnIndex; i++)
            {
                SLRstType cellValueAsRstType = sldocument.GetCellValueAsRstType(1, i);
                dataTable.Columns.Add(new DataColumn(cellValueAsRstType.GetText(), typeof(string)));
            }
            for (int j = startRowIndex + 1; j <= endRowIndex; j++)
            {
                DataRow dataRow = dataTable.NewRow();
                for (int i = startColumnIndex; i <= endColumnIndex; i++)
                {
                    dataRow[i - 1] = sldocument.GetCellValueAsString(j, i);
                }
                dataTable.Rows.Add(dataRow);
            }
        }
        catch (Exception ex)
        {
            throw new Exception("Xlsx to DataTable: \n" + ex.Message);
        }
        return dataTable;
    }

到此这篇关于C#把EXCEL数据转换成DataTable的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C#把EXCEL数据转换成DataTable

本文链接: https://www.lsjlt.com/news/145462.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#把EXCEL数据转换成DataTable
    C#实现EXCEL表格转DataTable C#代码实现把Excel文件转化为DataTable,根据Excel的文件后缀名不同,用不同的方法来进行实现,下面通过根据Excel文件的...
    99+
    2022-11-13
  • C#怎么把EXCEL数据转换成DataTable
    今天小编给大家分享一下C#怎么把EXCEL数据转换成DataTable的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。C#实现...
    99+
    2023-06-29
  • C# excel与DataTable之间的转换
    注意,Excel读入DataTable需要使用NPOI包 /// /// Excel导入成Datable /// /// 导入路径(包含文件名与扩展名) /// public static DataTable ExcelTo...
    99+
    2023-08-30
    c# excel
  • C#中把DataTable、Dataset转Json数据
    什么是JSON JSON是JavaScript Object Notation的简称,中文含义为“JavaScript 对象表示法”,它是一种数据交换的文本格...
    99+
    2022-11-13
  • C#中把Json数据转为DataTable
    简单 /// <summary> /// 将json转换为DataTable /// </summary> ...
    99+
    2022-11-13
  • C#中如何把Json数据转为DataTable
    本篇内容介绍了“C#中如何把Json数据转为DataTable”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简单  &n...
    99+
    2023-06-30
  • C#中怎么把DataTable、Dataset转Json数据
    今天小编给大家分享一下C#中怎么把DataTable、Dataset转Json数据的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2023-06-30
  • C#实现DataTable数据行列转换
    一、代码 public static DataTable RevertRowToColumn(DataTable sourcedt) { ...
    99+
    2022-11-13
  • C#怎么将DataReader查询结果转换成DataTable
    要将DataReader查询结果转换为DataTable,你可以按照以下步骤进行操作:1. 创建一个空的DataTable对象。2....
    99+
    2023-08-08
    C#
  • c语言如何把字符转换成数字
    在C语言中,可以使用以下几种方法将字符转换为数字: 使用ASCII码:C语言中的字符是以ASCII码表示的,可以通过ASCII码将...
    99+
    2023-10-22
    c语言
  • 把php数组 转换成js数组
    在Web开发中,PHP和JavaScript是最常用的两种编程语言。而且PHP和JavaScript都有自己的数组类型,不能互相使用。所以,在前端需要把PHP数组转换成JavaScript数组。下面将介绍几种转换PHP数组到JavaScri...
    99+
    2023-05-23
  • 如何把char数组转换成String
    目录把char数组转换成String将传入的数组转为String型,存入数据库。去掉空格和括号[]总结把char数组转换成String 调用reverseStr()传入一个字符串&q...
    99+
    2023-02-15
    char数组转换String char数组转换 char数组String
  • 用python把数字转换成字母
    方法一(普通方法): # -*- coding: utf-8 -*- #把数字转换成相应的字符,1-->'A' 27-->'AA' def changeNumToChar(toSmallChar=None, to...
    99+
    2023-01-31
    转换成 字母 数字
  • c语言如何把字符转换成ascii码
    在C语言中,可以使用强制类型转换将字符转换为ASCII码。ASCII码是一个包含256个字符的标准字符编码,每个字符都有一个对应的A...
    99+
    2023-10-28
    c语言
  • C#中如何实现EXCEL转换成TXT文档
    这篇文章主要为大家展示了“C#中如何实现EXCEL转换成TXT文档”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#中如何实现EXCEL转换成TXT文档”这篇文章吧。C#数据转换前excel中的...
    99+
    2023-06-17
  • C语言怎么把时间戳转换成时间
    本篇内容介绍了“C语言怎么把时间戳转换成时间”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!#include <stdio.h...
    99+
    2023-06-04
  • excel数据怎么转换成图表显示百分比
    本篇内容主要讲解“excel数据怎么转换成图表显示百分比”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“excel数据怎么转换成图表显示百分比”吧!excel数据转换成图表显示百分比:首先我们选中...
    99+
    2023-07-02
  • 利用Java怎么将excel表格转换成json数据
    利用Java怎么将excel表格转换成json数据?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。实现方法如下:package org.duang.test;import jav...
    99+
    2023-05-31
    java excel json
  • ASP.NETMVC把数据库中枚举项的数字转换成文字
    标题可能无法表达我的本意。比如,有这样一个枚举: public enum MyChoice { MyFirstChoice = 0, ...
    99+
    2022-11-13
    ASP.NET MVC 数据库 枚举项 数字 文字
  • javascript如何把时间戳转换成天数
    本篇内容介绍了“javascript如何把时间戳转换成天数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作