1. 程式人生 > >SpreadJS 表格控制元件相關基礎知識

SpreadJS 表格控制元件相關基礎知識

 1. Spread.Sheets 內建支援英文 (預設),中文以及日文(需要相應的資原始檔)本地化。

     新增相應的資原始檔連結到頁面頭部來實現本地化;

本地化 meta 標籤,設定本地化 meta 標籤;

<!doctype html>
<meta name="spreadjs culture" content="zh-cn" />
<link rel="stylesheet" type="text/css" href="css/spread/gc.spread.sheets.excel2013white.11.1.0.css">
<script src="js/jquery-1.8.2.min.js" type="text/javascript"></script>
<script src="js/spread/gc.spread.sheets.all.11.1.0.min.js" type="text/javascript"></script>
<script src="js/spread/resources/zh/gc.spread.sheets.resources.zh.11.1.0.min.js" type="text/javascript"></script>
<script src="js/spread/resources/ja/gc.spread.sheets.resources.ja.11.1.0.min.js" type="text/javascript"></script>

GC.Spread.Common.CultureManager.culture()  en-us / zh-cn / ja-jp

2.初始化Spread.Sheets

<div id="ss" style="width:100%; height:360px;border: 1px solid gray;"></div>

window.onload = function () {
    var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), 
          { sheetCount: 1 });

//  通過函式 
//  var spread = GC.Spread.Sheets.findControl(document.getElementById('ss'))
//  獲取 spread物件例項
};

3.繫結資料 ,設定樣式

var sheet = spread.getActiveSheet();
var sheet = spread.getSheet(0); //該方法獲取想要操作的工作表
spread.removeSheet(0); // 刪除單元格

var sheetName = sheet.name(); // 獲取sheet名稱
sheet.name('sheet1'); // 設定sheet名稱

var person = { name: 'Wang feng', address: {postcode: '710075' } }; //資料
var source = new GC.Spread.Sheets.Bindings.CellBindingSource(person); //建立資料來源
sheet.setBindingPath(2, 2, 'name');//該方法指定區域的單元格設定要繫結的欄位
sheet.setDataSource(source);//該方法設定資料來源

sheet.getCell(2,1).text("Name");//在對應單元格設定文字值
sheet.addSpan(1, 1, 1, 2); //addSpan方法擴充套件單元格調整列寬
sheet.setColumnWidth(1, 120);//設定單元格列寬(idx,width)idx第幾列

sheet.getRange(1, 1, 1, 2).backColor("rgb(20, 140, 1218)") //設定單元格背景色
sheet.getRange(1, 1, 1, 2).text("Person Card"); //獲取單元格範圍並設定文字值
sheet.getRange(1, 1, 5, 2).setBorder(new GC.Spread.Sheets.LineBorder("Black", GC.Spread.Sheets.LineStyle.thin), {all: true });  // 邊框實線
sheet.getRange(2, 1, 4, 2).setBorder(new GC.Spread.Sheets.LineBorder("Black", GC.Spread.Sheets.LineStyle.dotted), {inside: true}); // 邊框虛線
sheet.getRange(1, 1, 1, 2).hAlign(GC.Spread.Sheets.HorizontalAlign.center); // 文字居中

sheet.getRowCount();  // 獲取excel行數
sheet.getColumnCount();  // 獲取excel列數
spread.setSheetCount(1); //設定獲取表單數
spread.addSheet(3); //新增sheet

spread.suspendPaint(); // 暫停繪製
spread.resumePaint();  // 重新繪製 

4.搜尋關鍵字方法

let sheetCount = spread.getSheetCount();  // 獲取表單個數
// 獲取所需操作的表單
let sheet;
if (sheetCount > 1) {
  sheet = spread.getSheet(1);
}

// 查詢'綜合得分'在excel表格單元格位置
let sheetSearch = GC.Spread.Sheets.Search;
let condition = new sheetSearch.SearchCondition();
condition.searchTarget = sheetSearch.SearchFoundFlags.cellText;
condition.searchString = '綜合得分';
condition.searchOrder = sheetSearch.SearchOrder.zOrder;
let result = sheet.search(condition);
let str = '[searchFoundFlag:' + result.searchFoundFlag
                    + ',foundSheetIndex:' + result.foundSheetIndex
                    + ',foundRowIndex:' + result.foundRowIndex
                    + ',foundColumnIndex:' + result.foundColumnIndex
                    + ',foundString:' + result.foundSheetIndex
                    + ']';
console.log('str', str);

// 預設'綜合得分'位置
let keyRow = -1;
let keyColumn = -1;
if (result.foundRowIndex < 0 && result.foundColumnIndex < 0) {
   alert('此模版不符合規則');
}
else {
  keyRow = result.foundRowIndex;
  keyColumn = result.foundColumnIndex;
  // 行列idx從0開始,在關鍵字上方插入1行
  sheet.addRows(keyRow, 1);
}