さらに良いのは、MIME Type
ユーザーが「.por」ファイルをダブルクリックすると、ユーザーに何をすべきかを伝えるために exe をトリガーするように を作成することです。Excelで開くのではなく。言わなければ、ユーザーは、por ファイルが Excel ファイルであることを知りません。
xls はバイナリ ファイルであるため、ファイルの拡張子が変更された場合、次のようなものを使用しない限り、ユーザーは MIME タイプを知ることができません:
MAC アップロード ストリーム ファイルの MIME タイプの決定
DataTable を取得し、行ごとにこれを Excel ファイルに書き出すことについて。
データを 2 次元配列に簡単に取り込むことができます。
string[,] TwoDimensional = new string[dt.Rows.Count, dt.Columns.Count];
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; i++)
{
TwoDimensional[i, j] = dt.Rows[i][j].ToString();
}
}
そして、一挙にそれらを Excel に設定します。
using (var targetRangeHeader = _excelApp.Range["A1"].WithComCleanup())
using (var targetRangeFirstDataCell = targetRangeHeader.Resource.Offset[1, 0].WithComCleanup())
using (var targetRange = targetRangeFirstDataCell.Resource.Resize[LengthOfArray, 1].WithComCleanup())
{
....
targetRange.Resource.Value2 = TwoDimensional;
最終的な決定、つまりステートメントにVSTO Contribを使用していることに注意してusing
ください。
これを忘れないでください (ユーザーが自動を使用していると仮定するのではなく、現在の計算モードを記録して復元します):
public static void TurnOffApplicationSettings(Excel.Application xlApp)
{
xlApp.ScreenUpdating = false;
xlApp.DisplayAlerts = false;
xlApp.Calculation = XlCalculation.xlCalculationManual;
xlApp.UserControl = false;
xlApp.EnableEvents = false;
}
public static void TurnOnApplicationSettings(Excel.Application xlApp)
{
xlApp.ScreenUpdating = true;
xlApp.DisplayAlerts = true;
xlApp.Calculation = XlCalculation.xlCalculationAutomatic;
xlApp.UserControl = true;
xlApp.EnableEvents = true;
}