Mon code fonctionne correctement, à l'exception des numéros. Si l'instruction attrape la valeur double lorsque je débogue. Pourtant je ne peux pas écrire dans un type de données excepté la chaîne à Excel. Si je devais être plus précis, les cellules dans Excel sont correctes mais ce ne sont pas des nombres.Conservation du type de données Lors de l'exportation de DataTable vers Excel avec Open Xml SDK en C#
foreach (System.Data.DataRow dsrow in table.Rows)
{
DocumentFormat.OpenXml.Spreadsheet.Row newRow = new DocumentFormat.OpenXml.Spreadsheet.Row();
foreach (String col in columns)
{
DocumentFormat.OpenXml.Spreadsheet.Cell cell = new DocumentFormat.OpenXml.Spreadsheet.Cell();
if (dsrow[col].GetType() == typeof(Double))
{
cell.DataType = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
}
else
{
cell.DataType = DocumentFormat.OpenXml.Spreadsheet.CellValues.String;
}
cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(dsrow[col].ToString()); //
newRow.AppendChild(cell);
}
sheetData.AppendChild(newRow);
}
double possible de ([format Office Open XML SDK numéros d'écriture à feuille] https://stackoverflow.com/questions/16607063/office-open-xml -sdk-writing-numbers-to-sheet) – Kyra
Comme on peut le voir dans la réponse à la question que je viens de signaler comme doublon dans le cas des nombres, mettez d'abord la valeur dans, puis changez le type de données. Sinon, vous en faites encore une chaîne, par la méthode 'ToString' – Kyra