C#怎么把EXCEL数据转换成DataTable
C#怎么把EXCEL数据转换成DataTable
今天小编给大家分享一下C#怎么把EXCEL数据转换成DataTable的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
C#实现EXCEL表格转DataTable
C#代码实现把Excel文件转化为DataTable,根据Excel的文件后缀名不同,用不同的方法来进行实现,下面通过根据Excel文件的两种后缀名(*.xlsx和*.xls)分别来实现。获取文件后缀名的方法是:Path.GetExtension(fileName)方法,通过引用:using System.IO;实现代码如下:(其中以下代码中出现的filename都是带盘符的绝对路径)
根据Excel文件的后缀名不同调用的主方法
privateDataTableFileToDataTable(stringfileName){DataTabledt=newDataTable();stringextendName=Path.GetExtension(fileName);//获取文件的后缀名switch(extendName.ToLower()){case".xls":dt=XlsToDataTable(fileName);break;case".xlsx":dt=XlsxToDataTable(fileName);break;default:break;}returndt;}
XlsToDataTable()
privateDataTableXlsToDataTable(stringfileName){DataTabledataTable=newDataTable();Streamstream=null;try{stream=File.OpenRead(fileName);HSSFWorkbookhssfworkbook=newHSSFWorkbook(stream);HSSFSheethssfsheet=(HSSFSheet)hssfworkbook.GetSheetAt(hssfworkbook.ActiveSheetIndex);HSSFRowhssfrow=(HSSFRow)hssfsheet.GetRow(0);intlastCellNum=(int)hssfrow.LastCellNum;for(inti=(int)hssfrow.FirstCellNum;i<lastCellNum;i++){DataColumncolumn=newDataColumn(hssfrow.GetCell(i).StringCellValue);dataTable.Columns.Add(column);}dataTable.TableName=hssfsheet.SheetName;intlastRowNum=hssfsheet.LastRowNum;//列名后,从TABLE第二行开始进行填充数据for(inti=hssfsheet.FirstRowNum+1;i<hssfsheet.LastRowNum;i++)//{HSSFRowhssfrow2=(HSSFRow)hssfsheet.GetRow(i);DataRowdataRow=dataTable.NewRow();for(intj=(int)hssfrow2.FirstCellNum;j<lastCellNum;j++)//{dataRow[j]=hssfrow2.GetCell(j);//}dataTable.Rows.Add(dataRow);}stream.Close();}catch(Exceptionex){ScriptManager.RegisterStartupScript(Page,GetType(),"alertForm","alert('XlstoDataTable:"+ex.Message+"');",true);}finally{if(stream!=null){stream.Close();}}returndataTable;}
XlsxToDataTable()
publicDataTableXlsxToDataTable(stringvFilePath){DataTabledataTable=newDataTable();try{SLDocumentsldocument=newSLDocument(vFilePath);dataTable.TableName=sldocument.GetSheetNames()[0];SLWorksheetStatisticsworksheetStatistics=sldocument.GetWorksheetStatistics();intstartColumnIndex=worksheetStatistics.StartColumnIndex;intendColumnIndex=worksheetStatistics.EndColumnIndex;intstartRowIndex=worksheetStatistics.StartRowIndex;intendRowIndex=worksheetStatistics.EndRowIndex;for(inti=startColumnIndex;i<=endColumnIndex;i++){SLRstTypecellValueAsRstType=sldocument.GetCellValueAsRstType(1,i);dataTable.Columns.Add(newDataColumn(cellValueAsRstType.GetText(),typeof(string)));}for(intj=startRowIndex+1;j<=endRowIndex;j++){DataRowdataRow=dataTable.NewRow();for(inti=startColumnIndex;i<=endColumnIndex;i++){dataRow[i-1]=sldocument.GetCellValueAsString(j,i);}dataTable.Rows.Add(dataRow);}}catch(Exceptionex){thrownewException("XlsxtoDataTable:\n"+ex.Message);}returndataTable;}
以上就是“C#怎么把EXCEL数据转换成DataTable”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注恰卡编程网行业资讯频道。
推荐阅读
-
excel快速合并居中快捷键是什么(80个Excel键盘快捷键大全)
-
透视表excel透视表怎么做(数据透视表是干嘛的)
-
复购率怎么算(excel复购率计算公式)
-
使用PHP输出CSV和EXCEL文件的简单方法
-
php中iconv转换成utf-8编码丢失数据的问题
最近在一个php项目中做了一个批量导入会员信息的功能。当初考虑主要有两种实现方法:第一种:用excel文件格式批量导入。ph...
-
phpexcel动态获取列
本文实例讲述了php生成excel列名超过26列大于Z时的解决方法。具体分析如下:我们生成excel都会使用phpExcel类...
-
「php」php导出excel表格的方法分享(代码)
-
如何通过PhpSpreadsheet操作Excel文档
目录概述phpspreadsheet简介从phpspreadsheethelloworld开始下载保存...
-
python怎么用xlsxwriter模块处理excel文件
-
C#怎么实现DataTable转TXT、CSV文件
C#怎么实现DataTable转TXT、CSV文件这篇文章主要介绍...