在做Excel导出的时候,通常的思路是直接输出Html,流输出,Com方式。
通常ASP 程序开发者会使用第一种,优点是直接,简单,所见所得。但会碰到很多格式转换的问题。本人不是很推荐。万不得已不要使用。
第二种通常见于Java, .Net程序开发人员,优点是操作简单,不需要关系内部实现(其实也是通过XML 或者HTML来输出),缺点是过于透明化,修改不容易。也不容易做太复杂的Excel 计算。
第三种是最麻烦的一种,但却更加可控制一些,通常见于一些C/S程序,优点是可控性强,便于输出较复杂的情形。缺点繁琐,而且需要Office 对象,还要面对一些Com 内存等的一些Bug,然后需要一定得VBA基础(样式很头疼)。
无论哪种方式都有很多细节上的问题。
例如 字符(全部是数字的)到Excel 0 位缺失,或者科学计数的困扰。
如果是第一和第二种,思路是加样式:"vnd.ms-excel.numberformat:@"
如果是第一种,可以直接在输出的时候加 td里
如果是第二种在 RowDataBound事件里绑定
e.Row.Cells[i].Attributes.Add("style", "vnd.ms-excel.numberformat:@")
第三种就比较容易了
worksheet.Cells[i 2, z 1] = GridView.Rows[i].Cells[j].Value.ToString()