轉發,收藏保存備查
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 應用
