January 26, 2006 at 8:44 am
Hi,
I want to Import the data from an EXCEL file which is being uploaded by a web application. Name of the file will be different every time. I have to use Stored procedure for acheiving this. I need to import using a column list because few columns are auto generated in the back end. I am too new to DTS and do not know whether it will work here. Is there any better way to do it?
Thanks in advance
Rohit
January 26, 2006 at 9:57 am
If:
a)The excel spreadsheet always has same number of columns
b)You want to import the same columns
c)The excel tabname is always the same
...You can use a dynamic properties task to change the name of the source spreadsheet dynamically.
Effectively this repoints the package to a different source WITHOUT losing the transformation mappings.
If any of the above answer false, then dts is not the way to go unless you bring in the entire spreadsheet into a table then use an sp to write to the target.
This effectively means creating a table with a matching column for the maximum number of columns in a spreadsheet, naming them F1, F2...etc
January 27, 2006 at 2:57 pm
If you must do it from a stored procedure you can use the following syntax to select from the excel spreadsheet:
insert into table
select * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;DATABASE=d:\excelfile.xls', 'Select * from [sheet1$]')
It requires that the worksheet name (sheet1$) is always the same. If the name of the file itself is always changing and it's impossible to push back on the user community to follow a standard then you have at least two options.
1. rename the spreadsheets in your directory one at a time to a common file name as you load them using xp_cmdshell and the ren command
2. use xp_cmdshell and the dir command to get a list of excel files
ex. insert into table1 --table1 should have one column 256 characters wide
exec master..xp_cmdshell 'dir d:\*.xls'
You can then use string functions like substring and charindex to get the name of any excel files in the directory
You would then build a query string and replace "d:\excelfile.xls" in the query above with your result. Then run the query using sp_executesql
I'd probably use option number 1 or push back on your users to name their files a common name.
January 29, 2006 at 10:49 pm
Thanks a ton for your reply. The option of using OPENROWSET is best suited fot my application.
Thanks a ton
Regards
Rohit
Viewing 4 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy