C#导出Excel时,设置列为数字类型

只需要在PutValue时,转为数字类型即可。导出时,在Excel会自动显示为数字。默认是文本。

for (int i = 0; i < dt.Rows.Count; i++)
                {
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        if (j > 3)
                        {
                            style = cells[i + N, j].GetStyle();
                            style.Number = 1;
                            cells[i + N, j].SetStyle(style);
                            cells[i + N, j].PutValue(dt.Rows[i][j].ToString() == "" ? 0 : decimal.Parse(dt.Rows[i][j].ToString().Trim()));
                        }
                        else
                        {
                            style = cells[i + N, j].GetStyle();
                            style.Number = 49;
                            cells[i + N, j].SetStyle(style);
                            cells[i + N, j].PutValue(dt.Rows[i][j].ToString());
                        }
                        
                    }
                }
                workbook.Save(filename);

C#导出Excel时,设置列为数字类型

按网上的,设置了style.Number = 1;依然没用。

https://blog.****.net/peng790/article/details/54600924