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;

}

}

相关推荐
追风林3 分钟前
idea支持本地 的 服务器 远程debug
java·服务器·intellij-idea
凸头11 分钟前
AI 流式聊天接口实现(WebFlux+SSE)
java·人工智能
简宸~12 分钟前
VS Code + LaTex + SumatraPDF联合使用指南
java·vscode·latex·sumatrapdf
弦有三种苦难21 分钟前
CCF-202412-T3缓存模拟90分
java·开发语言·spring
青槿吖28 分钟前
SpringMVC通关秘籍(下):日期转换器、拦截器与文件上传的奇幻冒险
java·开发语言·数据库·sql·mybatis·状态模式
weixin_4563216434 分钟前
Java架构设计:Redis AOF持久化深度解析(原理+实战+避坑)
java·开发语言·redis
leaves falling35 分钟前
数据结构-堆学习
java·数据结构·学习
阿蒙Amon38 分钟前
C#常用类库-详解YamlDotNet
开发语言·c#
Java水解39 分钟前
Java 中实现多租户架构:数据隔离策略与实践指南
java·后端
不秃不少年1 小时前
Java 设计模式
java