0

それをExcelにエクスポートしたいデータグリッドビューがあります。それは完全に機能しますが、Excelに問題があります。....のような名前の列がいくつかありますが7/8 7/9、SQLでは....のように表示され[7/8] [7/9]ますが、それをエクスポートしてExcelにエクスポートすると、これらの列の名前は次のような月名で表示されます:8-jul 9-julしかし、そのように表示したくありません.

SQLの列名とまったく同じように表示したい。

私は何をすべきか?

どんな助けでも大歓迎です

4

4 に答える 4

1

Microsoft.Office.Interop.Excel を使用している場合は、 to (テキスト用)numberformatのプロパティを設定すると、適切な値が保持されます。これを試してください。Cell@

oSheet.Cells[rowCount, columnCount].numberformat = "@";
oSheet.Cells[rowCount, columnCount] = "7/9";

編集コメントによると、次のように使用する必要があります。

for (int i = 0; i < dataGridView1.Rows.Count - 1; i++) 
{ 
       for (int j = 0; j < dataGridView1.Columns.Count; j++) 
       {
             if(j+1 == 5 && i!=1) //value of the cell where you put values like 7/8 and it's not the column name cell
                   worksheet.Cells[i + 2, j + 1].numberformat = "@";
             worksheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString(); 
       } 
}

EDIT2これは列名なので、これを使用できます:

for (int j = 0; j < dataGridView1.Columns.Count; j++) 
{
    worksheet.Cells[1, j + 1].numberformat = "@"; 
    worksheet.Cells[1, j + 1].dataGridView1.Columns[i].Name
}

for (int i = 0; i < dataGridView1.Rows.Count - 1; i++) 
{ 
       for (int j = 0; j < dataGridView1.Columns.Count; j++) 
       {
             worksheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString(); 
       } 
}
于 2012-11-18T19:24:42.127 に答える
0

このプロジェクトを参照してください:https : //exportdata.codeplex.com/、4,000行を超える大きなデータテーブルをエクスポートしてdatagridviewを介してExcelを実行でき、フォーマット、スタイルなどのExcelデータプロパティを設定することもできます。その中で、Excelのデータ形式を必要なものに設定できます。試してみることができます。

于 2012-11-19T05:52:18.260 に答える
0

[7/8]のようにスペースを使用するだけで簡単です[ 7/8]

于 2012-11-18T20:23:35.750 に答える
0

MS ReportViewer を使用して Excel レポートを生成します。または、Aspose ライブラリを使用します。または、Devexpress AspxGridView + AspxGridViewExporter を使用します

于 2012-11-18T18:59:25.327 に答える