找回密码
 立即注册

QQ登录

只需一步,快速开始

一颗葡萄籽

初级会员

25

主题

56

帖子

219

积分

初级会员

积分
219
一颗葡萄籽
初级会员   /  发表于:2022-6-22 09:10  /   查看:3084  /  回复:5
1金币
本帖最后由 一颗葡萄籽 于 2022-6-24 11:15 编辑

DateTimeCellType类型的单元格,当其为空时,Excel导出会导出成1900/01/00,如何让它导出时也是空。

最佳答案

查看完整内容

不是spread的问题,是在导出时用Convert.ToDateTime(null)给cell值的时候它会转成0001/01/00,然后导出时excel认识的是从1900/01/00开始的日期。问题找到了,也解决了,麻烦了。

5 个回复

倒序浏览
最佳答案
最佳答案
一颗葡萄籽
初级会员   /  发表于:2022-6-22 09:10:02
来自 6#

不是spread的问题,是在导出时用Convert.ToDateTime(null)给cell值的时候它会转成0001/01/00,然后导出时excel认识的是从1900/01/00开始的日期。问题找到了,也解决了,麻烦了。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-6-22 10:46:14
2#
你好,没有重现问题,导出后仍然是空值

  1.             FpSpread1.ActiveSheetView.Cells[0, 0].CellType = new DateTimeCellType();

  2.             FpSpread1.SaveExcel(@"C:\Users\RICHARDMA\source\repos\WebFormsDemo\WebFormsDemo\bin\AAA.xlsx", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat);
  3.             
复制代码
回复 使用道具 举报
一颗葡萄籽
初级会员   /  发表于:2022-6-22 14:05:35
3#
因为我的值是从DB检索出来,用语接收的变量是datetime类型的,你加上如下代码就应该能重现问题。
public Datetime? date = null;
FpSpread1.ActiveSheetView.Cells[0, 0].Value = date;
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-6-22 17:55:57
5#
也没有重现问题
image.png395510253.png
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-6-24 09:25:08
7#
嗯,问题解决就好
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部