Tag: stored procedures

如何parsing存储在MS SQL 2005 varbinary中的excel(.xls)文件?

问题 如何最好的parsing/访问/提取“SQL文件”数据存储为一个SQL 2005字段中的二进制数据? (所有的数据最终都可以存储在其他表的其他字段中)。 背景 基本上,我们的客户需要大量来自用户的详细数据。 不幸的是,我们的客户不能要求从他们的用户的任何种类的数据库导出。 所以我们的客户必须为用户提供某种用户界面来input数据。 我们的客户决定的用户界面可以被所有的用户接受,因为它具有相当强大的用户界面。 所有这一切,我们的客户需要parsing这些数据,并自动存储在他们的数据库。 我们试图说服我们的客户,用户将这样做一次,然后坚持数据库导出! 但客户不能要求数据库导出他们的用户。 我们的客户要求我们parsing一个excel文件 客户的用户正在使用excel作为“最佳”用户界面来input所有需要的数据 用户被赋予空白的Excel模板,他们必须填写 这些模板具有固定数量的唯一命名的选项卡 这些模板有一些必须完成的固定区域(单元) 这些模板也有一些区域,用户将插入多达数千个相同格式的行 完成后,Excel文件通过标准的HTMLfile upload从用户提交 我们的客户将这个文件原始存储到他们的SQL数据库 特定 一个标准的excel(“.xls”)文件(本地格式,不是逗号或制表符分隔) 文件原始存储在varbinary(max) SQL 2005字段中 excel文件数据在行之间可能不一定是“一致的”,也就是说,我们不能假设一列是完全相同的数据types(例如,可能有行标题,列标题,空单元格,不同的“格式”), …) 要求 代码完全在SQL 2005(存储过程,SSIS?) 能够访问任何工作表上的值(选项卡) 能够访问任何单元格中的值(不需要公式数据或取消引用) 不能假定单元格的值在行之间是“一致的”,也就是说,我们不能假设一列是完全相同的数据types(例如,可能有行标题,列标题,空单元格,公式,不同的“格式“,…) 优先 没有文件系统访问(不写入临时.xls文件) 以定义的格式检索值(例如,实际date值而不是像39876那样的原始数字)