c# Excel转换成DataSet

/// <summary>

/// Excel转换成DataSet(.xlsx/.xls)

/// </summary>

/// <param name="filePath">Excel文件路径</param>

/// <param name="strMsg"></param>

/// <returns></returns>

public static DataSet ExcelToDataSet(string filePath, out string strMsg)

{

strMsg = "";

DataSet ds = new DataSet();

DataTable dt = new DataTable();

string fileType = Path.GetExtension(filePath).ToLower();

string fileName = Path.GetFileName(filePath).ToLower();

try

{

ISheet sheet = null;

int sheetNumber = 0;

// 加载Excel文件

using (FileStream fs = File.Open(filePath, FileMode.Open, FileAccess.Read))

{

if (fileType == ".xlsx")

{

// 2007版本

XSSFWorkbook workbook = new XSSFWorkbook(fs);

sheetNumber = workbook.NumberOfSheets;

for (int i = 0; i < sheetNumber; i++)

{

string sheetName = workbook.GetSheetName(i);

sheet = workbook.GetSheet(sheetName);

if (sheet != null)

{

dt = GetSheetDataTable(sheet, out strMsg);

if (dt != null)

{

dt.TableName = sheetName.Trim();

ds.Tables.Add(dt);

}

else

{

//MessageBox.Show("Sheet数据获取失败,原因:" + strMsg);

}

}

}

}

else if (fileType == ".xls")

{

// 2003版本

HSSFWorkbook workbook = new HSSFWorkbook(fs);

sheetNumber = workbook.NumberOfSheets;

for (int i = 0; i < sheetNumber; i++)

{

string sheetName = workbook.GetSheetName(i);

sheet = workbook.GetSheet(sheetName);

if (sheet != null)

{

dt = GetSheetDataTable(sheet, out strMsg);

if (dt != null)

{

dt.TableName = sheetName.Trim();

ds.Tables.Add(dt);

}

else

{

//MessageBox.Show("Sheet数据获取失败,原因:" + strMsg);

}

}

}

}

}

return ds;

}

catch (Exception ex)

{

strMsg = ex.Message;

return null;

}

}

相关推荐
鱼跃鹰飞7 小时前
设计模式系列:工厂模式
java·设计模式·系统架构
a努力。7 小时前
国家电网Java面试被问:混沌工程在分布式系统中的应用
java·开发语言·数据库·git·mysql·面试·职场和发展
Yvonne爱编码7 小时前
Java 四大内部类全解析:从设计本质到实战应用
java·开发语言·python
J2虾虾7 小时前
SpringBoot和mybatis Plus不兼容报错的问题
java·spring boot·mybatis
毕设源码-郭学长8 小时前
【开题答辩全过程】以 基于springboot 的豪华婚车租赁系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
Tao____10 小时前
通用性物联网平台
java·物联网·mqtt·低代码·开源
曹轲恒10 小时前
SpringBoot整合SpringMVC(上)
java·spring boot·spring
JH307311 小时前
Java Spring中@AllArgsConstructor注解引发的依赖注入异常解决
java·开发语言·spring
码农水水11 小时前
米哈游Java面试被问:机器学习模型的在线服务和A/B测试
java·开发语言·数据库·spring boot·后端·机器学习·word
2601_9495758611 小时前
Flutter for OpenHarmony二手物品置换App实战 - 表单验证实现
android·java·flutter