3

Excel へのエクスポート機能でこれを使用して、UniversalSortableDateTimePattern から日付だけを取得する方法はありますか。Excel は日付形式を受け入れません
。yyyy-MM-dd として表示する必要があります。何か提案は役に立ちますか?私のコードとして

 dtASalesDrivers.Columns.Add(new System.Data.DataColumn("Start Date", typeof(String)));
DateTime dt = Convert.ToDateTime(txtATrendStartDate.Text);
 drASalesDrivers[2] = string.Format("{0:yyyy-MM-dd}", dt);
dtASalesDrivers.Rows.Add(drASalesDrivers);

編集 :

            DateTime dt = Convert.ToDateTime(txtATrendStartDate.Text);
            drASalesDrivers[2] = string.Format("{0:u}", dt);

これにより、日付と時刻の両方が表示されます。日付だけを表示する方法はありますか???

4

2 に答える 2

5

それはあなたのコンピュータの設定と関係があると思います。

Excelの新しいインスタンスを開いて入力2012-07-24し、セルから移動すると、すぐにに変わり24/07/2012ます。これは、コードに関係する何よりも、コンピューターの地域設定です。

ただし、セルを次のようにフォーマットできるyyyy-mm-dd;@ため、プログラムでこれを実行し、他に何も変更しないようにする必要があります。これでうまくいくと思います。

DateTime dt = Convert.ToDateTime(txtATrendStartDate.Text);
drASalesDrivers[2] = string.Format("{0:u}", dt);
drASalesDrivers[2].NumberFormat = "yyyy-mm-dd;@";

しかし、私はそれをテストしていません

私はいくつかのいじりをしていました、そしていくつかのサンプルコードは以下にあります:

using System.Runtime.InteropServices;
using Microsoft.Office.Interop.Excel;

namespace ConsoleApplication19
{
    class Program
    {
        static void Main(string[] args)
        {
            Application _excelApp = new Application();
            Workbook workbook = _excelApp.Workbooks.Open(@"C:\test\New Microsoft Excel Worksheet.xlsx");

            Worksheet sheet = (Worksheet)workbook.Sheets[1];
            Range excelRange = sheet.get_Range("A1");

            //If you comment the next line of code, you get '24/07/2012', if not you get '2012-07-24'
            excelRange.NumberFormat = "yyyy-mm-dd;@";

            excelRange.Value2 = "2012-07-13";

            workbook.Save();
            workbook.Close(false, @"C:\test\New Microsoft Excel Worksheet.xlsx", null);
            Marshal.ReleaseComObject(workbook);
        }
    }
}

また、string.Format("{0:u}", dt);確かに日付と時刻dt.ToString("yyyy-MM-dd");を返し、あなたの日付を返します。

Short date別の方法は、次のようにコンピュータの設定をyyy-MM-ddに変更することです。

日付設定

これにより、コンピューターのExcelでデフォルトで日付が希望どおりに表示されますが、コンピューターによって表示が異なります。

于 2012-07-24T11:14:01.117 に答える