C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: Excel出力で書式設定


(過去ログ 15 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■5358 / inTopicNo.1)  Excel出力で書式設定
  
□投稿者/ ratte (8回)-(2007/07/11(Wed) 13:21:24)

分類:[ASP.NET (VB)] 

vb2005
asp.net1.1
WindowsXP

漠然とした質問で恐縮ですが,調べてみても分からなかったので質問させていただきます.

WEBアプリを開発予定なのですが(まだhtmlで画面を作っているだけです),
画面で入力した値を元にDBに検索をかけ,その結果をExcel出力する,ということをしたいです.
その際に,出力されたExcelファイルの特定のセルを縦書き表示にする,
ということは可能なんでしょうか?

引用返信 編集キー/
■5397 / inTopicNo.2)  Re[1]: Excel出力で書式設定
□投稿者/ mあ (15回)-(2007/07/12(Thu) 12:09:17)
No5358 (ratte さん) に返信
> その際に,出力されたExcelファイルの特定のセルを縦書き表示にする,

http://www.happy500z.com/
500個しか無い?ので探してください。

> 調べてみても分からなかったので

#縦書き自体が指定できるんじゃなくて、「セル幅」と「折り返し」でやるようですね。

#
# 検索は大変です。
#

引用返信 編集キー/
■5401 / inTopicNo.3)  Re[1]: Excel出力で書式設定
□投稿者/ 魔界の仮面弁士 (342回)-(2007/07/12(Thu) 13:37:23)
2007/07/12(Thu) 14:42:43 編集(投稿者)
No5358 (ratte さん) に返信
> その際に,出力されたExcelファイルの特定のセルを縦書き表示にする,
> ということは可能なんでしょうか?


☆オートメーションで作成する場合☆

対象のセル(を表す Range オブジェクト)に対して、
 targetRange.Orientation = XlOrientation.xlVertical
と指定すれば、そのセルが縦書きのセルとなります。
ちなみに回転なら、この Orientation プロパティに、-90 〜 90 の整数を指定します。

処理としては楽ですが、ASP.NET 上で生成するとなると、COMの解放問題、
ライセンス、リソース面など、考慮しなければならない問題が幾つかあります。



☆XML スプレッドシート形式で作成する場合☆

まずはスタイル設定。
/Workbook/Styles の末尾に、下記の Style/Alignment タグを追加します。

<Style ss:ID="識別値"><Alignment ss:VerticalText="1"/></Style>

ss:textRotation="1" が垂直指定です。
ちなみに回転なら、かわりに ss:Rotate="45" のように指定します。

あとはそれを参照させるため、目的のセルに対して、
  <Cell ss:StyleID="識別値">
のように、そのスタイルを割り当てれば OK です。



☆xlsx 形式で作成する場合☆

まずはスタイル設定。
\xl\styles\styles.xml の /styleSheet/cellXfs の末尾に、下記の xf/alignment タグを追加します。

<xf><alignment textRotation="255"/></xf>

textRotation属性が文字の角度を表しており、0〜255の値が入ります。
255なら垂直(縦書き)、0なら通常(横書き)です。
1〜90ならば左回りに1度〜90度、91〜180ならば右回りに1度〜90度です。
属性自体が指定されなかった場合は、0が指定されたものとみなされます。
# 181〜254の範囲は、Excel 2007 ではサポートされていません。

あとはそれを参照させるため、目的のセル、たとえば、Sheet1!A1 セルであれば、
\xl\worksheets\sheet1.xml 内の /worksheet/sheetData/row/c[@r="A1"] のタグに

<c r="A1" s="スタイル番号" t="s">

の形式でスタイルを割り当てます。
(スタイル番号には、先ほど追加した cellXfs 内の xf の位置を整数で指定します)

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -