主頁 > 資料庫 > webform中ole操作excel

webform中ole操作excel

2020-09-20 09:14:28 資料庫

轉發,收藏保存備查
1.權限設定

開始->運行dcomcnfg.exe,打開如下圖所示:

找到Microsoft Excel Application組件,右擊選擇屬性,

選擇安全:

全部選自定義,并添加用戶(只演示啟動和激活權限):



選擇iis用戶后確定,并給所有權限:

最后將Microsoft Excel 程式根目錄檔案夾以及所有涉及到的檔案的安全權限添加iis用戶并給完全控制權限。
 
2.函式改變

因為pb webform的發布是先轉換成c#的代碼,然后復制到iis服務器站點中運行,所以原本pb中ole操作excel的語法會出現錯誤!下面是一段正確的代碼示例:
OLEObject ExcelServer
ExcelServer = CREATE OLEObject
ExcelServer.ConnectToNewObject( "excel.application")
ExcelServer.Visible = false                 (注意:沒有application)
ExcelServer.DisplayAlerts = False
ExcelServer.Workbooks.add("F:\Schneider Electric SA\Report\abc.xlsx")添加這個檔案,相當于一個鏡像abc1.xlsx
ExcelServer.Workbooks.open("F:\Schneider Electric SA\Report\abc.xlsx")打開這個檔案abc.xlsx
ExcelServer.ActiveSheet.cells[r,c].value = dw_1.object.data[r,c]
#if defined pbwebform then
?st_7.text = MapVirtualPath("F:\temp.xlsx")//為了避免用戶之間影響,先轉為虛擬路徑
#end if
ExcelServer.ActiveSheet.SaveAs(st_7.text)//存到各自的session中
 
#if defined pbwebform then
?downloadfile("F:\temp.xlsx",false)
#end if
 
ExcelServer.ActiveWorkBook.close
 
ExcelServer.quit
ExcelServer.DisConnectObject()
Destroy ExcelServer
 
 
 
C# 設定Excel 常用屬性 .
 
*1.創建Excel物件
  eole=CREATEOBJECT('Excel.application')
*  2.添加新作業簿
  eole.Workbooks.add
    激活指定的作業簿
    eole.WorkSheets("作業簿名").Activate

*  3.設定第3個作業表為激活作業表
  eole.Worksheets("sheet1").Activate
*  4.打開指定作業簿
  eole.Workbooks.add("E:/E_temp/ABC.xls")
*  5.顯示Excel視窗
  eole.visible=.t.
*  6.更改Excel標題欄
  eole.Caption="VFP應用程式呼叫Microsoft Excel"
*  7.給單元格賦值
*  eole.cells(行,列).value=https://bbs.csdn.net/topics/XM(XM為資料庫欄位名)
  eole.cells(1,4).value='https://bbs.csdn.net/topics/ASDFASDFASDFASDFADSF'
*  8.設定指定列的寬度(單位:字符個數)
  eole.ActiveSheet.Columns(1).ColumnWidth=5
*  9.設定指定行的高度(單位:磅)
  eole.ActiveSheet.Rows(1).RowHeight=1/0.035 && 設定行高為1厘米,1磅=0.035厘米
*  (設定行高為1厘米,1磅=0.035厘米)
*  10.在第18行之前插入分頁符
  eole.Worksheets("Sheet1").Rows(18).PageBreak=1
*  11.在第4列之前洗掉分頁符
  eole.ActiveSheet.Columns(4).PageBreak=0
*  12.指定邊框線寬度(Borders引數如下)
  eole.ActiveSheet.Range("b3:d3").Borders(2).Weight=3
*  13.設定四個邊框線條的型別
  eole.ActiveSheet.Range("b3:d3").Borders(1).LineStyle=1
*  (其中Borders引數:1-左、2-右、3-頂、4-底、5-斜、6-斜/;LineStyle
值:1與7-細實、2-細虛、4-點虛、9-雙細實線)
*  14.設定頁眉
  eole.ActiveSheet.PageSetup.CenterHeader="報表1"
*  15.設定頁腳
  eole.ActiveSheet.PageSetup.CenterFooter="第&P頁"
*  16.設定頁眉到頂端邊距為2厘米
  eole.ActiveSheet.PageSetup.HeaderMargin=2/0.035
*  17.設定頁腳到底邊距為3厘米
  eole.ActiveSheet.PageSetup.FooterMargin=3/0.035
*  18.設定頂邊距為2厘米
  eole.ActiveSheet.PageSetup.TopMargin=2/0.035
*  19.設定底邊距為4厘米
  eole.ActiveSheet.PageSetup.BottomMargin=4/0.035
*  20.設定左邊距為2厘米
  eole.ActiveSheet.PageSetup.LeftMargin=2/0.035
*  21.設定右邊距為2厘米
  eole.ActiveSheet.PageSetup.RightMargin=2/0.035
*  22.設定頁面水平居中
  eole.ActiveSheet.PageSetup.CenterHorizontally=.t.
*  23.設定頁面垂直居中
  eole.ActiveSheet.PageSetup.CenterVertically=.t.
*  24.設定頁面紙張大小(1-窄行8?5?11 39-寬行14?11)
  eole.ActiveSheet.PageSetup.PaperSize=1
    可為下列 XlPaperSize 常量之一(某些列印機可能不支持所有的這些紙張大小);
    常量               數值  意義;
    xlPaperLetter         1  Letter (8-1/2 in. x 11 in.) 
    xlPaperA3             8  A3 (297 mm x 420 mm) 
    xlPaperA4             9  A4 (210 mm x 297 mm) 
    xlPaperA4Small       10  A4 Small (210 mm x 297 mm) 
    xlPaperA5            11  A5 (148 mm x 210 mm) 
    xlPaperB4            12  B4 (250 mm x 354 mm) 
    xlPaperB5            13  B5 (182 mm x 257 mm) 
    xlPaperFanfoldUS     39  U.S. Standard Fanfold (14-7/8 in. x 11 in.) 
    xlPaperUser              用戶自定義

*  25.列印單元格網線
  eole.ActiveSheet.PageSetup.PrintGridlines=.t.
*  26.拷貝整個作業表
  eole.ActiveSheet.UsedRange.Copy
*  27.拷貝指定區域
  eole.ActiveSheet.Range("A1:E2").Copy
*  28.粘貼
  eole.Worksheets("sheet2").Activate
  eole.ActiveSheet.Range("F1").PasteSpecial
*  29.在第2行之前插入一行
  eole.ActiveSheet.Rows(2).Insert
*  30.在第2列之前插入一列
  eole.ActiveSheet.Columns(2).Insert
*  31.設定字體
  eole.ActiveSheet.Cells(2,1).Font.Name="黑體"
*  32.設定字體大小
  eole.ActiveSheet.Cells(1,1).Font.Size=25
*  33.設定字體為斜體
  eole.ActiveSheet.Cells(1,1).Font.Italic=.t.
*  34.設定整列字體為粗體
  eole.ActiveSheet.Columns(1).Font.Bold=.t.

    35.合并單元格,重要!
    _ole_excel.Worksheets("作業簿名").Range(范圍).merge     && 范圍必須指定起止的單元格,如"A1:B4"

eole.ActiveSheet.Range("A1:B4").merge &&合并當前作業表中指定范圍

    36.撤銷合并單元格,上述操作的逆操作
    _ole_excel.Worksheets("作業簿名").Range(范圍).unmerge

    37.在單元格中設定公式(重要,一般可以用來實作計算匯總、求平均等很多功能)
    _ole_excel.cells(行,列).value = "=公式"    && 可以使用所有VBA內部函式,如sum()等。注意:不能使用VFP的函式啊!
*  35.清除單元格公式
  eole.ActiveSheet.Cells(1,4).ClearContents
*  36.列印預覽作業表
  eole.ActiveSheet.PrintPreview
*  37.列印輸出作業表
  eole.ActiveSheet.PrintOut
*  38.作業表另為
  eole.ActiveWorkbook.SaveAs("c:/temp/22.xls")
*  39.放棄存盤
  eole.ActiveWorkbook.saved=.t.
*  40.關閉作業簿
    WAIT WINDOW 'ASDFASDF'
  eole.Workbooks.close
*  41.退出Excel
  eole.quit

uj5u.com熱心網友回復:

多謝,試一下看行不行

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/87682.html

標籤:Web 應用

上一篇:求助!程式沒有報錯,但是有些函式無法呼叫,為啥呢?

下一篇:萬年一更——吐血整理JavaScript—DOM操作

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more