/ / Jak ustawić niestandardowy format dla komórek takich jak datetime w infragistic excel przy eksportowaniu danych do excela - c #, asp.net, .net, export-to-excel, infragistics

Jak ustawić niestandardowy format dla komórek, takich jak datetime w infragistic excel przy eksportowaniu danych do programu Excel - c #, asp.net, .net, export-to-excel, infragistics

Robię eksport do Excela za pomocą infragystykiExcel. I chcę ustawić typ kolumny programu Excel tak, jak typ kolumny db.Means, jeśli typem kolumny jest datetime, należy utworzyć kolumnę datetime w arkuszu programu infradistics excel.

Próbowałem poniżej kodu.

 Infragistics.Documents.Excel.Workbook workbook = new Infragistics.Documents.Excel.Workbook();

// Create the worksheet to represent this data table
Infragistics.Documents.Excel.Worksheet worksheet = workbook.Worksheets.Add(dtReportData.TableName);

// Create column headers for each column
for (int columnIndex = 0; columnIndex < dtReportData.Columns.Count; columnIndex++)
{
worksheet.Rows[0].Cells[columnIndex].Value = dtReportData.Columns[columnIndex].ColumnName;
}

// Starting at row index 1, copy all data rows in
// the data table to the worksheet
int rowIndex = 1;
foreach (DataRow dataRow in dtReportData.Rows)
{
Infragistics.Documents.Excel.WorksheetRow row = worksheet.Rows[rowIndex++];

for (int columnIndex = 0; columnIndex < dataRow.ItemArray.Length; columnIndex++)
{
row.Cells[columnIndex].Value = dataRow.ItemArray[columnIndex];

if (dtReportData.Columns[columnIndex].DataType == Type.GetType("System.Decimal"))
{

//Here column should be of type decimal.

}
else if (dtReportData.Columns[columnIndex].DataType == Type.GetType("System.DateTime"))
{
//Here column type should be of type datetime.
}

}

Czy ktoś może mi w tym pomóc?

Odpowiedzi:

0 dla odpowiedzi № 1

Nie sądzę, żeby można było ustawić typ kolumny bezpośrednio, jak pamiętam, jest to określone przez wartość komórki, tutaj jest próbka, dla podwójnego przekazujemy w formacie ciągu, mam nadzieję, że to pomaga.

    if (col.Definition.Type == DataType.Double)
{
.....
worksheet.Rows[r].Cells[column].CellFormat.FormatString = format;
}
else if (col.Definition.Type == DataType.DateTime)
{
...
worksheet.Rows[r].Cells[column].Value = col[row];
}
else if (col.Definition.Type == DataType.Boolean)
{
...
worksheet.Rows[r].Cells[column].Value = (bool) col[row];
}
else
{
// use string value, because some cell in the table is not a valid type in excel
worksheet.Rows[r].Cells[column].Value = col[row].ToString();
}