javascript
通过javascript获取sharepoint数据,使用JS导出Excel
通過網頁將數據導出到Excel是常見需求,使用服務器端導出,開發周期長,部署麻煩。這里推薦一種客戶端導出方法。
客戶端導出與Sharepoint無關。這里附帶使用場景基于SP,因為SP自帶的導出功能比較弱,只能將List中全部數據導出的Excel中,如果要定制列和行很麻煩。使用客戶端導出更簡潔。
客戶端導出特點:
使用方法:
導出的Excel一般都是需要調整樣式,字體,字號等滿足客戶需求,附注一下各個常用屬性。?和常用色卡。
//設置Excel中ActiveWindow的屬性: ExcelSheet.ActiveWindow.freezePanes=true; //凍結行列 ExcelSheet.ActiveWindow.DisplayGridlines=false;//不顯示網格 ExcelSheet.ActiveWindow.SplitRow = 2; //分割前兩行 ExcelSheet.ActiveWindow.SplitColumn = 3; //分割前三列 //附帶設置Excel中ActiveSheet的全部屬性: ExcelSheet.ActiveSheet.PageSetup.LeftMargin= 2/0.035; //頁邊距 左2厘米 ExcelSheet.ActiveSheet.PageSetup.RightMargin = 3/0.035; //頁邊距 右3厘米, ExcelSheet.ActiveSheet.PageSetup.TopMargin = 4/0.035; //頁邊距 上4厘米, ExcelSheet.ActiveSheet.PageSetup.BottomMargin = 5/0.035; //頁邊距 下5厘米 ExcelSheet.ActiveSheet.PageSetup.HeaderMargin = 1/0.035; //頁邊距 頁眉1厘米 ExcelSheet.ActiveSheet.PageSetup.FooterMargin = 2/0.035; //頁邊距 頁腳2厘米 ExcelSheet.ActiveSheet.PageSetup.CenterHeader = "頁眉中部內容"; ExcelSheet.ActiveSheet.PageSetup.LeftHeader = "頁眉左部內容"; ExcelSheet.ActiveSheet.PageSetup.RightHeader = "頁眉右部內容"; ExcelSheet.ActiveSheet.PageSetup.CenterFooter = "頁腳中部內容"; ExcelSheet.ActiveSheet.PageSetup.LeftFooter = "頁腳左部內容"; ExcelSheet.ActiveSheet.PageSetup.RightFooter = "頁腳右部內容";8.對單元格操作,帶*部分對于行,列,區域都有相應屬性 ExcelSheet.ActiveSheet.Cells(row,col).Value = "內容"; //設置單元格內容 ExcelSheet.ActiveSheet.Cells(row,col).Borders.Weight = 1; //設置單元格邊框*() ExcelSheet.ActiveSheet.Cells(row,col).Interior.ColorIndex = 1; //設置單元格底色*(1-黑色, 2-白色,3-紅色,4-綠色,5-藍色,6-黃色,7-粉紅色,8-天藍色,9-醬土色..可以多做嘗試) ExcelSheet.ActiveSheet.Cells(row,col).Interior.Pattern = 1; //設置單元格背景樣式*(1-無, 2-細網格,3-粗網格,4-斑點,5-橫線,6-豎線..可以多做嘗試) ExcelSheet.ActiveSheet.Cells(row,col).Font.ColorIndex = 1; //設置字體顏色*(與上相同) ExcelSheet.ActiveSheet.Cells(row,col).Font.Size = 10; //設置為10號字* ExcelSheet.ActiveSheet.Cells(row,col).Font.Name = "黑體"; //設置為黑體* ExcelSheet.ActiveSheet.Cells(row,col).Font.Italic = true; //設置為斜體* ExcelSheet.ActiveSheet.Cells(row,col).Font.Bold = true; //設置為粗體* ExcelSheet.ActiveSheet.Cells(row,col).ClearContents; //清除內容* ExcelSheet.ActiveSheet.Cells(row,col).WrapText=true; //設置為自動換行* ExcelSheet.ActiveSheet.Cells(row,col).HorizontalAlignment = 3; //水平對齊方式枚舉* (1-常規, 2-靠左,3-居中,4-靠右,5-填充 6-兩端對齊,7-跨列居中,8-分散對齊) ExcelSheet.ActiveSheet.Cells(row,col).VerticalAlignment = 2; //垂直對齊方式枚舉*(1-靠上, 2-居中,3-靠下,4-兩端對齊,5-分散對齊) //行,列有相應操作: ExcelSheet.ActiveSheet.Rows(row). ExcelSheet.ActiveSheet.Columns(col). ExcelSheet.ActiveSheet.Rows(startrow+":"+endrow). //如Rows("1:5")即1到5行 ExcelSheet.ActiveSheet.Columns(startcol+":"+endcol). //如Columns("A:B")即1到2列 //區域有相應操作: XLObj.Range(startcell+":"+endcell).Select; //如Range("A2:H8")即A列第2格至H列第8格的整個區域 XLObj.Selection. //合并單元格 XLObj.Range(startcell+":"+endcell).MergeCells = true; //如Range("A2:H8")即將A列第2格至H列第8格的整個區域合并為一個單元格 或者: XLObj.Range("A2",XLObj.Cells(8, 8)).MergeCells = true;9.設置行高與列寬 ExcelSheet.ActiveSheet.Columns("A:Z").ColumnWidth = 20;//設置Column的寬度為20 ExcelSheet.ActiveSheet.Rows("1:10").RowHeight = 50;//設置row行的寬度為50ColorIndex對應的色值
如需要使用RGB顏色,要將RGB轉換為十進制,通過如下屬性賦值
ExcelSheet.ActiveSheet.Cells(row,col).Interior.Color = 1652735;//大紅
使用兩層的For循環對單元格調整顏色或字體效率很低,可以考慮是用excel 的range批量操作。參考我下一篇:通過JS導出Excel。將JS數組轉換為VB數組_佛曰我不想說話的博客-CSDN博客在JS中可以使用excel對象range賦值,但不能直接使用js的array,需要預先將js的數組轉換成二進制的dictionary才可以。通過如下函數可以轉換將JS的數組轉換成VB數組:function toVBArray1(jarray) { var dict1 = new ActiveXObject('Scripting.Dictionary'); for (var...https://blog.csdn.net/GetDC/article/details/99425352
總結
以上是生活随笔為你收集整理的通过javascript获取sharepoint数据,使用JS导出Excel的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js简易版歌单播放,可切换下一首
- 下一篇: flask导入mysql数据库_flas