通过asp.net中的文件上传将Excel工作表导入SQL Server

时间:2013-12-31 08:51:06

标签: asp.net sql sql-server excel ssis

我正在设计一个需求,它将为用户提供一个asp.net上传控件来上传excel文件(xls / xlsx /任何高级格式),并使用自定义列映射将此excel数据加载到SQL Server 2008数据表。

在互联网上我发现许多博客使用Jet OLEDB提供程序来实现此功能,但此功能有一些限制,如下所示 -

  1. 在表格中的前几行之后数据被截断 - Reasone是Jet提供商检查最初几行以决定数据类型及其大小。我找到的解决方案是转到注册表并更改“TypeGuessRows”的值。我的问题是 - 在asp.net应用程序的情况下,这是否可以在Web服务器上执行此操作

  2. 无法正确导入Unicode字符 - 可以通过更改连接字符串以添加“CharacterSet = 65001;”来解决此问题根据链接UnicodeCharacters

  3. 再次提出的问题是,这是否可行且是完全可靠的解决方案。

    将Excel导入SQL Server 2008以将大量数据密集型Excel导入数据库而不丢失任何数据和unicode字符的最佳方法是什么?该解决方案应与Excel 2003/2007/2010/2013兼容。

2 个答案:

答案 0 :(得分:2)

我使用此库在上传后导入xlsx文件。

https://exceldatareader.codeplex.com/

这有帮助吗?

答案 1 :(得分:0)

你可以帮助你。 https://freenetexcel.codeplex.com

 Workbook workbook = new Workbook();

 workbook.LoadFromFile(@"..\..\parts.xls",ExcelVersion.Version97to2003);
 //Initialize worksheet
 Worksheet sheet = workbook.Worksheets[0];

 DataTable dataTable = sheet.ExportDataTable();