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都是带盘符的绝对路径)

C#怎么把EXCEL数据转换成DataTable

根据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”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注恰卡编程网行业资讯频道。

发布于 2022-04-11 21:19:02
收藏
分享
海报
0 条评论
30
上一篇:vue跳转页面打开新窗口并携带与接收参数方式是什么 下一篇:java循环语句怎么使用
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码