0

だから大したことではありませんが、GoogleはそれがExcelドライバーの問題である可能性について、最近(ほとんど2007年かそこら)何も返していません...「答え」として見つけたものはそうではなかったので、ここに質問をするために来ました追加の調査なしで受け入れられます。

私の問題:

動的 OPENROWSET クエリを作成して、特定のユーザーにレポートを送信するための新しいデータをクリアして挿入します。ベースの Excel レポートには、挿入されたデータに基づいて計算および合計する数式が含まれており、乗算式は正常に機能しているように見えますが、合計はテキストではなく「数値」として Excel で適切に書式設定されますが、合計は機能しません...

ソリューションはフリーフォーム ベースである必要があります (ソリューションがある場合)。すべてのコードを SSIS に転送したくありません...

コードの更新/挿入:

    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)

2 番目の問題で、今のところは問題にならないかもしれませんが、後で - 挿入後、結果の周りに境界線が作成されるようです。結果の転送中にそれらを削除する潜在的な方法もありますか?

ドライバーの問題であるかどうかを調査するためのヘルプまたはソースは、何も見つからなかったので高く評価されます。

4

2 に答える 2

0

IMEX=1接続文字列に追加してみましたか?解釈された形式に関係なく、ドライバーは列内のすべてをテキストとして提供するように強制されます。

ここにそれを使用する接続文字列の完全な例があります。

于 2012-04-04T07:39:47.447 に答える
0

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

これで両方の問題が解決するはずですが、ダミーの行に対処する必要があり、ピボット テーブルのデータを使用している場合は煩わしい場合があります。

于 2012-04-04T07:36:06.657 に答える