找回密码
 立即注册

QQ登录

只需一步,快速开始

seasky083

银牌会员

7

主题

39

帖子

2360

积分

银牌会员

积分
2360

活字格认证微信认证勋章元老葡萄

seasky083
银牌会员   /  发表于:2015-8-25 11:16  /   查看:15276  /  回复:24
FarPoint.Web.Spread.FpSpread book = new FpSpread();
book.OpenExcel(file);
foreach (SheetView sheet in book.Sheets)
{
     int cols=sheet.NonEmptyColumnCount;
     int rows=sheet.NonEmptyRowCount;
}

这样获取导入进来的excel的非空白行和非空白列的行数列数的时候,为什么出来的结果跟实际
excel里面非空白行列的数据对不起来,列数会把整个excel都包括进去,导致打开这个excel的时候会
出现很多的空白行列

有什么解决办法么?

24 个回复

正序浏览
iceman
社区贡献组   /  发表于:2015-9-2 09:33:00
25#
回复 24楼seasky083的帖子

好的,感谢您的反馈,我会把本帖移动到需求板块,修复后会及时通知你(BugID 112350 )。

为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
回复 使用道具 举报
seasky083
银牌会员   /  发表于:2015-9-2 08:58:00
24#
thks,通过这种方式可以解决
后面希望发布新版本的时候,若解决了这个问题,告知一声
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-9-1 10:13:00
23#
回复 21楼seasky083的帖子

抱歉,久等了。

MVC中方法如下:

  1.        FpSpread book = new FpSpread();
  2.       
  3.         System.Web.UI.Page p = new System.Web.UI.Page();
  4.         System.Web.UI.HtmlControls.HtmlForm f = new System.Web.UI.HtmlControls.HtmlForm();
  5.         p.Controls.Add(f);
  6.         f.Controls.Add(book);      
  7.         //this.Form.Controls.Add(book);
  8.         book.OpenExcel(Server.MapPath("tt2.xls"), FarPoint.Excel.ExcelOpenFlags.TruncateEmptyRowsAndColumns);

  9.         foreach (SheetView sheet in book.Sheets)
  10.         {
  11.           var col = sheet.NonEmptyColumnCount;
  12.           var row = sheet.NonEmptyRowCount;
  13.         }
  14.         //book.Style.Add(HtmlTextWriterStyle.Display, "none"); // Make it invisible  
复制代码


性能问题可以在获取后执行 book.Reset() 清除实例中的数据,提高速度。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-8-27 16:49:00
22#
回复 21楼seasky083的帖子

抱歉,我们已经开始调查MVC下是否能够对应这个workaround,有进一步结果反馈给你。
回复 使用道具 举报
seasky083
银牌会员   /  发表于:2015-8-27 11:02:00
21#
你的意思是首选需要将这个FpSpread 加载到界面上,然后再去OPen就会正常了么,

但是我这个是mvc的,控件不好追加进去,另外这个地方只是设置了不可见,会不会影响打开的速度问题

7.0版本的时候你们都没这个我问题的,为什么8.0版本会有问题呢
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-8-27 10:53:00
20#
回复 18楼seasky083的帖子

该bug会在 Spread 8V2 中修复,预计11月左右发布。
当前您可以使用下面代码绕过这个问题:

  1. protected void Button2_Click(object sender, EventArgs e)
  2.         {
  3.             FpSpread book = new FpSpread();
  4.             this.Form.Controls.Add(book); // This is a bug of Spread that require it's placed in a webpage
  5.             book.OpenExcel(Server.MapPath("tt2.xls"), FarPoint.Excel.ExcelOpenFlags.TruncateEmptyRowsAndColumns);

  6.             foreach (SheetView sheet in book.Sheets)
  7.             {
  8.                 var col = sheet.NonEmptyColumnCount;
  9.                 var row = sheet.NonEmptyRowCount;
  10.             }
  11.             book.Style.Add(HtmlTextWriterStyle.Display, "none"); // Make it invisible            

  12.           // This code is fine
  13.             //FpSpread1.OpenExcel(Server.MapPath("tt2.xls"), FarPoint.Excel.ExcelOpenFlags.TruncateEmptyRowsAndColumns);
  14.             //foreach (SheetView sheet in FpSpread1.Sheets)
  15.             //{
  16.             //  var col = sheet.NonEmptyColumnCount;
  17.             //  var row = sheet.NonEmptyRowCount;
  18.             //}
  19.         }
复制代码
回复 使用道具 举报
Helen
高级会员   /  发表于:2015-8-26 11:48:00
19#
回复 18楼seasky083的帖子

您好!
已经反馈给给研发组。有任何进展,我们会及时回复您!
谢谢!
回复 使用道具 举报
seasky083
银牌会员   /  发表于:2015-8-26 11:37:00
18#
按照你的说话已经可以实现导入可查看到数据,但是这个问题还是要解决的,不然以后这边也没办法跟客户解释,
麻烦你们尽快将这个bug解决掉,给个反馈
回复 使用道具 举报
Helen
高级会员   /  发表于:2015-8-26 11:33:00
17#
回复 16楼seasky083的帖子

您好!
您发送的程序中含有一个fzb.xls,猜测可能是您需要导入的Excel。您将这个Excel打开,它现在默认是打开第二个工作表“取数表”,点击第一个工作表“表结法资产负债表”,鼠标点击这个工作表中的任意单元格,然后保存退出。
现在这个Excel就是将焦点放置在第一个工作表的Excel了。将这个Excel导入到Spread中,读取sheet.NonEmptyRowCount/sheet.NonEmptyColumnCount就不是0了。
谢谢!
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部