私の現在の回避策は、次のようなカスタム CSV 拡張機能を追加することです。
<Extension Name="Tabs" Type="Microsoft.ReportingServices.Rendering.CsvRenderer.CsvReport,Microsoft.ReportingServices.CsvRendering">
<OverrideNames>
<Name Language="en-US">Tab-delimited (requires patch)</Name>
</OverrideNames>
<Configuration>
<DeviceInfo>
<Encoding>ASCII</Encoding>
<FieldDelimiter>REPLACE_WITH_TAB</FieldDelimiter>
<Extension>txt</Extension>
</DeviceInfo>
</Configuration>
</Extension>
...テキスト「REPLACE_WITH_TAB」をフィールド区切り文字として使用していることがわかります。次に、プラットフォームに依存しない単純なPerl スクリプトを使用して、sed のような修正を実行します。
# all .txt files in the working directory
@files = <*.txt>;
foreach $file (@files) {
$old = $file;
$new = "$file.temp";
open OLD, "<", $old or die $!;
open NEW, ">", $new or die $!;
while (my $line = <OLD>) {
# SSRS 2005 SP2 can't output tab-delimited files
$line =~ s/REPLACE_WITH_TAB/\t/g;
print NEW $line;
}
close OLD or die $!;
close NEW or die $!;
rename($old, "$old.orig");
rename($new, $old);
}
これは間違いなくハッキングですが、かなり非侵襲的な方法で仕事を成し遂げます。必要なものは次のとおりです。
- ユーザーのマシンにインストールされた Perl
- .pl スクリプトを .txt ファイルのディレクトリにドラッグするユーザーの機能
- .pl スクリプトをダブルクリックするユーザーの機能