找回密码
 立即注册

QQ登录

只需一步,快速开始

sxtywp2

初级会员

10

主题

32

帖子

284

积分

初级会员

积分
284
sxtywp2
初级会员   /  发表于:2017-3-13 22:06  /   查看:7446  /  回复:13
本帖最后由 sxtywp2 于 2017-3-13 22:25 编辑

请教:1、怎么锁定第一到第五行,以及第八行,不允许修改
          2、怎么锁定列?
         3、能设置小数位不能超过3位吗?
         4  FpSpread1.UseClipboard = false;控制IE11不跳出剪贴板怎么不起作用?
谢谢

13 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-3-14 10:25:03
沙发
1 2. 锁定行列,locked 为true则为锁定。
            FpSpread1.ActiveSheetView.Rows[1].Locked = true;
            FpSpread1.ActiveSheetView.Rows[2].Locked = false;
            FpSpread1.ActiveSheetView.Columns[2].Locked = true;
            FpSpread1.ActiveSheetView.Protect = true;
3. Spread 没有限制用户输入的方法,可以在事件中去做处理。

  1. <script lang="javascript" type="text/javascript">
  2.     window.onload = function () {
  3.       var spread1 = document.getElementById("<%=FpSpread1.ClientID %>");
  4.       if (document.all) {
  5.         // IE
  6. if (spread1.addEventListener) {
  7. // IE9
  8. spread1.addEventListener("DataChanged", dataChanged, false);
  9. } else {
  10. // Other versions of IE and IE9 quirks mode (no doctype set)
  11. spread1.onDataChanged = dataChanged;
  12. }
  13. }
  14. else {
  15. // Firefox
  16. spread1.addEventListener("DataChanged", dataChanged, false);
  17.       }
  18.     }
  19.    
  20.     function dataChanged(event) {
  21.       alert("The data changed!");
  22.     }
  23.    
  24. </script>
复制代码


4.这个是浏览器行为,需要在浏览器里设置
回复 使用道具 举报
sxtywp2
初级会员   /  发表于:2017-3-14 20:34:05
板凳
本帖最后由 sxtywp2 于 2017-3-14 22:03 编辑
请教:
请教:
1、      一般界面 锁定可以,但当加载excel文件后全部锁定了
this.FpSpread1.OpenExcel(this.Server.MapPath(@"tempt\kkk.xlsx"));

        FpSpread1.ActiveSheetView.Rows[1].Locked = true;
        FpSpread1.ActiveSheetView.Rows[2].Locked = true;
        FpSpread1.ActiveSheetView.Rows[4].Locked = false;
        FpSpread1.ActiveSheetView.Columns[0].Locked = true;
        FpSpread1.ActiveSheetView.Protect = true;
  出来的界面怎么全部锁定了,都不能输入?

2、后台C#怎么控制页面加载后默认选中第一行。
3、spread.CallBack("DOID&" + objbh);
后,前台能否有个提示等待之类的东西?

谢谢!
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-3-15 09:37:08
地板
1.Excel 单元格默认时Locked的,而且cell的locked优先级高于行列,所以如果Cell设置了Locked true,需要通过代码重新设置为false
2. 用setselection设置
            FpSpread1.ActiveSheetView.SelectionModel.SetSelection(0, 0, 1, FpSpread1.ActiveSheetView.ColumnCount);
或者 设置 OperationMode  为row,每次选择一行
            FpSpread1.ActiveSheetView.OperationMode = OperationMode.RowMode;         
  FpSpread1.ActiveSheetView.ActiveRow = 0;
  FpSpread1.ActiveSheetView.ActiveColumn = 0;
3. 可以在事件里加
  1. <script lang="javascript" type="text/javascript">
  2. window.onload = function () {
  3. var spread1 = document.getElementById("<%=FpSpread1.ClientID %>");
  4. if (document.all) {
  5. // IE
  6.    if (spread1.addEventListener) {
  7.      // IE9
  8.      spread1.addEventListener("CallBackStart", CallBackStart, false);
  9.      spread1.addEventListener("CallBackStopped", CallBackStopped, false);
  10.       } else {
  11.      // Other versions of IE and IE9 quirks mode (no doctype set)
  12.       spread1.onCallBackStart = CallBackStart;
  13.       spread1.onCallBackStopped = CallBackStopped;
  14.       }
  15. }
  16.       else {
  17.       // Firefox
  18.       spread1.addEventListener("CallBackStart", CallBackStart, false);
  19.       spread1.addEventListener("CallBackStopped", CallBackStopped, false);
  20.      }
  21.    }
  22.    
  23.    function CallBackStart(event) {
  24.      if (event==null) event = window.event;
  25.         alert("start");
  26.      }
  27.    
  28.    function CallBackStopped(event) {
  29.       alert("stop");
  30.    }
  31. </script>
复制代码
回复 使用道具 举报
sxtywp2
初级会员   /  发表于:2017-3-15 10:07:51
5#
dexteryao 发表于 2017-3-15 09:37
1.Excel 单元格默认时Locked的,而且cell的locked优先级高于行列,所以如果Cell设置了Locked true,需要通 ...

谢谢!
还遇到个问题请教
怎么设置列能显示到日期的同时能够显示出来时间
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-3-15 10:32:50
6#
设置时间单元格的 Format
  1.             FarPoint.Web.Spread.DateTimeCellType dt = new FarPoint.Web.Spread.DateTimeCellType();
  2.             dt.FormatString = "yyyy/MM/dd hh:mm:ss";
  3.             dt.MaximumValue = new DateTime(2020, 12, 31);
  4.             dt.MinimumValue = new DateTime(1950, 1, 1);
  5.             FpSpread1.ActiveSheetView.Cells[0, 0].CellType = dt;
  6.             FpSpread1.ActiveSheetView.Cells[0, 0].Value = DateTime.Now;
复制代码
回复 使用道具 举报
sxtywp2
初级会员   /  发表于:2017-3-16 08:40:44
7#
dexteryao 发表于 2017-3-15 10:32
设置时间单元格的 Format

多谢,试用EXCEL设计的A4纸的表格加载入系统,填入数据后,导出的时候,
用FpSpread1.SaveExcelToResponse(Server.UrlEncode("ab3.xls"));导出EXCEL在一张A4纸上,但用
FpSpread1.SavePdfToResponse(Server.UrlEncode("PdfTest.pdf"));导出PDF的时候,有一行跨到了第二页,请教有解决办法吗?
还有个问题,请教有像EXCEL一样的预览功能没有?谢谢
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-3-16 11:54:36
8#
在导出pdf之前设置下PrintInfo,将Margin设置小。
这个没有预览,直接就下载了。


  1. FarPoint.Web.Spread.PrintInfo prinf = new FarPoint.Web.Spread.PrintInfo();
  2. prinf.BestFitCols = true;
  3. prinf.BestFitRows = true;
  4. prinf.Centering = FarPoint.Web.Spread.Centering.Both;
  5. prinf.ColEnd = 10;
  6. prinf.Colors = new System.Drawing.Color[] {
  7.         System.Drawing.Color.Green,
  8.         System.Drawing.Color.Yellow,
  9.         System.Drawing.Color.Gold,
  10.         System.Drawing.Color.Indigo,
  11.         System.Drawing.Color.Brown};
  12. prinf.ColStart = 0;
  13. prinf.FirstPageNumber = 1;
  14. prinf.Footer = "/g"1"/cl"4"This is Page /p of /pc Pages";
  15. prinf.FooterHeight = 40;
  16. prinf.Header = "/cl"0"Print Job For FarPoint Inc./n /n ";
  17. prinf.HeaderHeight = 40;
  18. prinf.Images = new System.Drawing.Image[] {
  19.         System.Drawing.Image.FromFile("D:\\images\\point.jpg"),
  20.         System.Drawing.Image.FromFile("D:\\images\\logo.gif"),
  21.         System.Drawing.Image.FromFile("D:\\images\\icon.jpg")};
  22. prinf.Margin = new FarPoint.Web.Spread.PrintMargin(10, 10, 10, 10, 20, 20);
  23. prinf.Opacity = 50;
  24. prinf.Orientation = FarPoint.Web.Spread.PrintOrientation.Landscape;
  25. prinf.PageEnd = 5;
  26. prinf.PageOrder = FarPoint.Web.Spread.PrintPageOrder.OverThenDown;
  27. prinf.PageStart = 1;
  28. prinf.PrintNotes = FarPoint.Web.Spread.PrintNotes.None;
  29. prinf.PrintType = FarPoint.Web.Spread.PrintType.All;
  30. prinf.RepeatColEnd = 10;
  31. prinf.RepeatColStart = 1;
  32. prinf.RepeatRowEnd = 10;
  33. prinf.RepeatRowStart = 1;
  34. prinf.RowEnd = 10;
  35. prinf.RowStart = 1;
  36. prinf.ShowBorder = false;
  37. prinf.ShowColumnFooter = FarPoint.Web.Spread.PrintHeader.Show;
  38. prinf.ShowColumnFooterEachPage = true;
  39. prinf.ShowColumnHeader = FarPoint.Web.Spread.PrintHeader.Show;
  40. prinf.ShowGrid = true;
  41. prinf.ShowRowHeader = FarPoint.Web.Spread.PrintHeader.Show;
  42. prinf.ShowSubtitle = true;
  43. prinf.ShowTitle = true;
  44. prinf.SmartPrintPagesTall = 1;
  45. prinf.SmartPrintPagesWide = 1;
  46. FarPoint.Web.Spread.SmartPrintRulesCollection prules = new FarPoint.Web.Spread.SmartPrintRulesCollection();
  47. prules.Add(new FarPoint.Web.Spread.BestFitColumnRule(FarPoint.Web.Spread.ResetOption.None));
  48. prinf.SmartPrintRules = prules;
  49. prinf.UseMax = true;
  50. prinf.UseSmartPrint = false;
  51. prinf.ZoomFactor = 2;
  52. FpSpread1.ActiveSheetView.PrintInfo = prinf;
复制代码
回复 使用道具 举报
sxtywp2
初级会员   /  发表于:2017-3-16 15:38:48
9#
不好意思,还有个问题,请教
表格中有张浮动的图片,红色的,但是
FpSpread1.SavePdfToResponse(Server.UrlEncode("PdfTest.pdf"));导出的时候有颜色

          FarPoint.Web.Spread.PrintInfo pi = new FarPoint.Web.Spread.PrintInfo();
           pi.Orientation = FarPoint.Web.Spread.PrintOrientation.Landscape;
           pi.Centering = FarPoint.Web.Spread.Centering.Both;
          pi.ShowColumnHeader = FarPoint.Web.Spread.PrintHeader.Hide;
          pi.ShowRowHeader = FarPoint.Web.Spread.PrintHeader.Hide;
设定后再导出,都黑色的。加下边后,还是黑色的,请教解决办法
          pi.Colors = new System.Drawing.Color[] {
        System.Drawing.Color.Green,
        System.Drawing.Color.Yellow,
        System.Drawing.Color.Red,
        System.Drawing.Color.Indigo,
        System.Drawing.Color.Brown};

谢谢
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-3-16 15:54:11
10#
显示颜色是设置 printset.ShowColor = true;
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部