C#匯出Excel和相關列印設定

來源:互聯網
上載者:User

標籤:style   blog   http   io   color   ar   os   sp   檔案   

Excel.Application myExcel = new Excel.Application();
Excel.Workbook workbookData = myExcel.Application.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
Excel.Worksheet xlSheet = (Worksheet)workbookData.Worksheets[1];//取得sheet1

1) 顯示當前視窗: xlSheet.Visible = True;
2) 更改 Excel 標題列: xlSheet.Caption = ‘應用程式調用 Microsoft Excel‘;
3) 添加新活頁簿: xlSheet.WorkBooks.Add;
4) 開啟已存在的活頁簿: xlSheet.WorkBooks.Open( ‘d:/Demo.xls‘ );
5) 設定第2個工作表為使用中工作表: xlSheet.WorkSheets[2].Activate; 
或 xlSheet.WorksSheets[ ‘Sheet2‘ ].Activate;
6) 給儲存格賦值:xlSheet.Cells[1,4].Value = ‘http://blog.soso.com/qz.q/第一行第四列‘;
xlSheet.Cells(2,j+1).Interior.Color = 50000 ;//設定儲存格背景顏色
7) 設定指定列的寬度(單位:字元個數),以第一列為例: xlSheet.Columns[1].ColumnsWidth = 5; 
8) 設定指定行的高度(單位:磅)(1磅=0.035厘米),以第二行為例: xlSheet.Rows[2].RowHeight = 1/0.035; // 1厘米 
9) 在第8行之前插入分頁符: xlSheet.WorkSheets[1].Rows[8].PageBreak = 1; 
10) 在第8列之前刪除分頁符: xlSheet.Columns[4].PageBreak = 0; 
11) 指定邊框線寬度: xlSheet.Range[ ‘B3:D4‘ ].Borders[2].Weight = 3; 1-左 2-右 3-頂 4-底 5-斜( / ) 6-斜( / ) 
12) 清除第一行第四列儲存格公式: xlSheet.Cells[1,4].ClearContents; 
13) 設定第一行字型屬性: 
xlSheet.Rows[1].Font.Name = ‘隸書‘; 
xlSheet.Rows[1].Font.Color = clBlue; 
xlSheet.Rows[1].Font.Bold = True; 
xlSheet.Rows[1].Font.UnderLine = True; 
xlSheet.Range("A1:G1").Merge(); //合併儲存格 
14) 進行版面設定: 
xlSheet.PageSetup.FirstPageNumber=1;/ /從首頁開始列印 
xlSheet.PageSetup.Orientation=2;//設定為橫向列印 
xlSheet.PageSetup.PrintTitleRows = "$2:$2";//固定列印表頭 
a.頁首: 註:這裡要注意,如果是Wps ET,Margin的單位預設為像素,要注意一下所給的值,別超出合理範圍;而Excel單位預設為字元數; xlSheet.PageSetup.CenterHeader = ‘報表示範‘;
b.頁尾: xlSheet.PageSetup.CenterFooter = ‘第&P頁---------共(&N)頁‘; 
c.頁首到頂端邊距2cm: xlSheet.PageSetup.HeaderMargin = 2/0.035; 
d.頁尾到底端邊距3cm: xlSheet.PageSetup.HeaderMargin = 3/0.035; 
e.頂邊距2cm: xlSheet.PageSetup.TopMargin = 2/0.035; 
f.底邊距2cm: xlSheet.PageSetup.BottomMargin = 2/0.035; 
g.左邊距2cm: xlSheet.PageSetup.LeftMargin = 2/0.035; 
h.右邊距2cm: xlSheet.PageSetup.RightMargin = 2/0.035; 
i.頁面水平置中: xlSheet.PageSetup.CenterHorizontally = 2/0.035; 
j.頁面垂直置中: xlSheet.PageSetup.CenterVertically = 2/0.035; 
k.列印儲存格網線: xlSheet.PageSetup.PrintGridLines = True; 
15) 拷貝操作: 
a.拷貝整個工作表: xlSheet.Used.Range.Copy; 
b.拷貝指定地區: xlSheet.Range[ ‘A1:E2‘ ].Copy; 
c.從A1位置開始粘貼: xlSheet.Range.[ ‘A1‘ ].PasteSpecial; 
d.從檔案尾部開始粘貼: xlSheet.Range.PasteSpecial; 
16) 插入一行或一列: 
a. xlSheet.Rows[2].Insert; 
b. xlSheet.Columns[1].Insert; 
17) 刪除一行或一列: 
a. xlSheet.Rows[2].Delete; 
b. xlSheet.Columns[1].Delete; 
18) 預覽列印工作表: xlSheet.PrintPreview; 
19) 列印輸出工作表: xlSheet.PrintOut; 
20) 工作表另存新檔: workbookData.Saved = true;
xlSheet.SaveAs(filename, missing, missing, missing, missing, missing, missing, missing, missing, missing);
21) 關閉活頁簿: workbookData.Close(false, missing, missing);
22) 退出 Excel: myExcel.Quit();

在C#中如何對Excel儲存格設定背景色以及對Range設邊框 private Excel.Application objApp;
private Excel.Sheets objSheets;
private Excel._Worksheet objSheet;
private Excel.Range range;
objApp = new Excel.Application();
objSheet = (Excel._Worksheet)objSheets.get_Item(1);

/// <summary>
/// 設定儲存格的背景色---多個串連的儲存格
/// </summary>
/// <param name="sRow">開始行</param>
/// <param name="sCol">開始列</param>
/// <param name="eRow">結束行</param>
/// <param name="eCol">結束列</param>
/// <param name="colorIndex">顏色的索引</param>
public void SetRangeBackground(int sRow,int sCol,int eRow,int eCol,int colorIndex)
{
range=objSheet.get_Range(objSheet.Cells[sRow,sCol],objSheet.Cells[eRow,eCol]);
range.Interior.ColorIndex=colorIndex;
}
/// <summary>
/// 設定儲存格的線
/// </summary>
public void SetBorderLine(int sRow,int sCol,int eRow,int eCol)
{
range=objSheet.get_Range(objSheet.Cells[sRow,sCol],objSheet.Cells[eRow,eCol]);
range.Cells.Borders.LineStyle=1;

}

 

設定邊框顏色:sheet.Cells[startRow, 2].Borders.Color = 0x0000ff;//這個是紅色,x後前兩個0是藍色,中間兩個0是綠色,最後兩個是紅色~~

 

設定制定邊框:sheet.Range[sheet.Cells[1, 2], sheet.Cells[1 ,30]].Borders[4].LineStyle = 1;

Border[4]是指下邊框,3是指上邊框,1是左,2是右~~填成0會報錯.不加中括弧是全部的邊框~~~

 

 

Excel裡設定顏色的時候:ColorIndex,不能用Color(我汗).在網上找到的這個圖,不用自己去一個個試了

來個改背景色的例子:sheet.Cells[startRow, 25].Interior.ColorIndex = 4;

 

合併儲存格:r=ws.get_Range(ws.Cells[1,1],ws.Cells[1,6]);     //取得合并的地區 
r.MergeCells=true;

 

C#調用Excel時刪除Sheet的小問題

 用C#調Excel對象的Worksheets.Delete進行刪除某個檔案中的Sheet時始終無法實現。後來發現問題所在:

預設情況下,Appliation.Open檔案時visible為false,在無宏的情況下只會在後台進行操作,不在前台開啟頁面。這種情況下,如果只調用Delete來刪除,會彈出確認刪除的對話方塊,但是由於是後台操作無法看見這個對話方塊,所以始終刪除沒有完成。將visible時才發現問題所在。

解決方案,不彈出這個提示框,workbook.displayalerts = false ,即可。(注:此處的workbook是Application)

C#匯出Excel和相關列印設定

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.