找回密码
 立即注册

QQ登录

只需一步,快速开始

bamengqiu

银牌会员

5

主题

8

帖子

2241

积分

银牌会员

积分
2241

活字格认证

bamengqiu
银牌会员   /  发表于:2014-7-22 11:15  /   查看:5161  /  回复:3
我的行锁定不生效:代码如下:
currentSheetView.Protect = true;
                for (int iTmp = 0; iTmp < iStartRow; iTmp++)
                    currentSheetView.Rows[iTmp].Locked = true;

为什么这段代码会不起作用,然后我增加
currentSheetView.Rows[iTmp].ResetLocked();是起作用了但是是整个表都锁定了 ,怎么回事儿?
用户浏览报表后可能需要将表格保存在本地,有参考的示例代码没?



我导入到spread控件中的的excel模板是有公式的 ,最后一行是合计行,但是我插入行后合计行步计算新插入行的数据了,我插入代码的问题还是什么问题呢。表格样式如下:

QQ截图20140722111341.gif

3 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-7-22 19:53:00
沙发
回复 1楼bamengqiu的帖子

问题一和问题三:
通过 Spread for ASP.NET 7.0 V3 在IE11下测试,使用1#中的代码可以正常锁定单元格。
请问你的测试环境是?

问题二:
可以使用 FpSpread1.SaveExcelToResponse 方法
回复 使用道具 举报
bamengqiu
银牌会员   /  发表于:2014-7-22 21:50:00
板凳
哎试了n久才知道打开Protected属性后锁定是没问题,你不需要锁定的区域需要手动触发locked=false才行;
一般设置页面显示的记录数可以用这样的属性:sheetView.AllowPage = true;
            sheetView.PageSize = 50;
客户导出表格可以用:System.IO.MemoryStream ms = new MemoryStream();
            FpSpread1.SaveExcel(ms, FarPoint.Excel.ExcelSaveFlags.SaveCustomColumnHeaders);
            Response.Clear();
            Response.ContentType = "application/VND.ms-excel";
            Response.AddHeader("Content-Disposition", "attachment;filename=aa.xls");
            Response.BinaryWrite(ms.ToArray());
            ms.Flush();
            ms.Close();
            Response.End();
要想让单元格公式起作用貌似单元格类型要数值型才可以,我把单元格类型设置成数值型后公式起作用的,但是遇到另外一个问题就是我新增一行后再新增加的单元格中输入数值,公式不自动统计新增行的值。哎问题一个接一个啊
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-7-23 20:10:00
地板
回复 3楼bamengqiu的帖子

能否请你把 Demo 发上来我们调试下。
导入 Excel 后,是否设置了如下属性?
  1. FpSpread1.ClientAutoCalculation = true;
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部