2012-02-19 17 views
0

それほど大したことではありませんが、GoogleではExcelのドライバの問題であると思われるものについては最近(ほとんど2007年)返すことはありません...私が "答え"として見つけたものは、それ以上の研究がなければ受け入れられませんでした。SQL Server 2005 OPENROWSET Excelに挿入 - 数値書式設定のテキスト

私の問題:

明確なダイナミックOPENROWSETクエリを書くと、特定のユーザーにレポートをオフに送信するための新しいデータを挿入する - ベースのレポートをExcelが、それはオフに計算し、和が挿入されたデータをオフに基づいており、その中にいくつかの数式が含まれています乗算の計算式は正常に機能しているようですが、合計値がテキストではなく数値としてExcelで正しく書式設定されないと、合計は機能しません。

ソリューションは自由形式でなければなりませんすべて)、私はすべてのコードをSSISに転送したくない...

アップデート/インサーTコード:

SELECT @sqlu = 'UPDATE OPENROWSET(' + 
    '''Microsoft.ACE.OLEDB.12.0'', ' + 
    '''Excel 12.0;Database=' + @File + ';HDR=YES'', ' + 
    '''SELECT * FROM [Base$B1:G601]'') 
    SET 
    col1 = '''', col2 = '''', col3 = '''', col4 = '''', col5 = '''', col6 = '''' ' 


    EXEC (@sqlu) 


    SELECT @sqli = 'INSERT INTO OPENROWSET(' + 
    '''Microsoft.ACE.OLEDB.12.0'', ' + 
    '''Excel 12.0;Database=' + @File + ';HDR=NO'', ' + 
    '''SELECT * FROM [Base$B1:G2]'') 

    SELECT col1, col2, col3, col4, col5, col6 
    FROM [DATABASE].[dbo].tbl_CIM 
    WHERE col1 IN(''' + @area + ''')' 


    EXEC (@sqli) 

第二の問題点と、それは今が、後で問題ではないかもしれない - 挿入した後、結果の周りに境界線を作成しているようです。結果の転送中にそれらを削除する方法もありますか?

ドライバの問題であれば、調査するための助けや情報源はありません。

答えて

0

私が知っている唯一の方法は、書き込んでいるExcelシートにデータのダミー行を作成することです。 データをエクスポートするのと同じ形式で、この行に偽のデータを挿入します。必要に応じて、この行を非表示にすることができます。

これは、両方の問題を解決しなければならない、しかし、あなたは

0

はあなたの接続文字列にIMEX=1を追加しようとしたことがあり、ピボットテーブルのデータを使用している場合にいらいらすることができダミー行に対処する必要がありますか?それは、ドライバが解釈された形式に関係なく、列のすべてをテキストとして与えるように強制する必要があります。

hereを使用した接続文字列の完全な例があります。

関連する問題