找回密码
 立即注册

QQ登录

只需一步,快速开始

zhaoshangsoft
金牌服务用户   /  发表于:2020-9-25 21:48  /   查看:5627  /  回复:14
clone  sheet页的时候提示 无效的行指定的索引:16(行的当前值是16)

我做了循环sheet页复制每一页导出一个excel文件的功能,有一个页面提示这个错误
代码如下
foreach (SheetView sh in fpSpread.Sheets)
{
     FpSpread tempsp = new FpSpread(LegacyBehaviors.All);
     tempsp.Sheets[0] = sh.Clone();
     ....
}

14 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-26 00:18:28
沙发
本帖最后由 Richard.Ma 于 2020-9-27 10:30 编辑

问题已收到,
看起来是表格文件中特定sheet内容导致的问题,我需要用您这边的文件来重现问题,请上传一份上来,文件可以设置阅读权限仅超级版主
回复 使用道具 举报
zhaoshangsoft
金牌服务用户   /  发表于:2020-9-27 11:32:39
板凳
你好, 文件里的    STEEL PIPE BRIDGE   页会导致这个问题,文件请见附件

PS+BULK+PIPING+SPECIAL+OKI+TM14.xlsx

110.04 KB, 阅读权限: 150, 下载次数: 2

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-27 12:19:12
地板
收到,我验证后给你回复
回复 使用道具 举报
zhaoshangsoft
金牌服务用户   /  发表于:2020-9-29 09:26:04
5#
好的尽快,这个挺重要的
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-29 11:04:25
6#
本帖最后由 Richard.Ma 于 2020-9-29 11:25 编辑

测试未能重现错误,附上我这里测试的详细情况,您可以用下面的代码试一下

和你的基本一样。但是用Add方法添加Sheet
  1.             this.fpSpread1.OpenExcel(@"D:\Projects\PS+BULK+PIPING+SPECIAL+OKI+TM14.xlsx");
  2.             foreach (SheetView sh in fpSpread1.Sheets)
  3.             {
  4.                 var sheet = sh.Clone();
  5.                 FpSpread tempsp = new FpSpread(LegacyBehaviors.All);
  6.                 tempsp.Sheets.Add(sheet);
  7.                 tempsp.SaveExcel(@"D:\Projects\PS" + sheet.SheetName + ".xlsx", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat);
  8.             }
复制代码
Spread版本为13.45.20201.0

如果以上代码仍然报错的话,可以检查对比一下产品版本

回复 使用道具 举报
zhaoshangsoft
金牌服务用户   /  发表于:2020-9-29 14:01:18
7#
版本是一致的,不过还需要删除sheet页其中行之后再导出
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-29 14:05:57
8#
嗯,那现在报错是其他地方吗,Clone方法我这里测试没有报错

评分

参与人数 1满意度 +5 收起 理由
zhaoshangsoft + 5 很给力!

查看全部评分

回复 使用道具 举报
zhaoshangsoft
金牌服务用户   /  发表于:2020-9-29 14:20:59
9#
用add方法不会报错,只是会多个原始的空白sheet1
回复 使用道具 举报
zhaoshangsoft
金牌服务用户   /  发表于:2020-9-29 14:44:32
10#
  tempsp.Sheets.RemoveAt(0);,我加了这个方法去移除sheet1,应该是可行的。谢谢
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部