1

からにASP.NET 4.0 web appデータを読み取るがあります。ここで、このデータをファイル (Office 2003)に書き込みたいと思います。現時点では、 を使用して空のワークシートを作成し、insert ステートメントを使用して行ごとにデータを書き込みます。しかし、私が本当に欲しいのは、Excel ファイルの列をデータセットのデータ型に従ってフォーマットすることです。たとえば、データセットのフィールドが system.decimal 型の場合、Excel の対応する列を 10 進数としてフォーマットする必要があります。SQL Server 2008 R2DataSetxlsCREATE TABLE

これまでのところ、. 内でさまざまなデータ型を試してきCREATE TABLE statementました。試してみSQL datatypesました (int、bigint、money、datetime、bit、nvarchar、および xml は、私のデータベースが最もよく使用するものです) 。Excel-specific datatypesいくつかのOleDB特定のものだけでなく、いくつかも試しましたが、成功しませんでした。データはファイルに書き込まれますが、列はデフォルトのままフォーマットされます。

いくつかの詳細情報:

String AceConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + "; Extended Properties=\"Excel 8.0; HDR=YES; IMEX=0; READONLY=FALSE;\""; //filename is the target xls file

**example CREATE TABLE statement (with SQL datatypes for the fields)**

CREATE TABLE [Report22.10.2013 14:45] ([IDKatalog] Int, [KatalogName] NVarChar(255), [Tabellenname] NVarChar(255), [KomplettUpdate] Bit, [IDLieferant] Int, [FreigabeVon] NVarChar(255), [FreigabeVonEMail] NVarChar(255), [IDKatalogAS] Int)

を使用してフォーメーションを設定するイベントは可能OLEDBですか? 色、フォント、幅などのデータ表現を変更できないことはわかっていますが、セル形式を決定できますか?

4

1 に答える 1

0

OLEDB でこれを実行できるかどうかはわかりませんが、Powershell または VBA を使用して実行できることは確かです。以下は、Microsoft のリファレンスからのものです。

Worksheets("Sheet1").Range("A17").NumberFormat = "General"
Worksheets("Sheet1").Rows(1).NumberFormat = "hh:mm:ss"
Worksheets("Sheet1").Columns("C"). _
NumberFormat = "$#,##0.00_);[Red]($#,##0.00)"

http://msdn.microsoft.com/en-us/library/office/aa224873%28v=office.11​​%29.aspx

Powershell を使用したくない場合は、適切な書式設定情報が既に入力されたテンプレート ファイルを事前に作成してから、OLEDB にそれを入力させて、入力されたシートを別のものとして保存することもできます。

于 2013-10-22T16:14:31.473 に答える