2015-01-21 18 views
16

Tôi muốn đóng băng 5 cột đầu tiên và ba hàng trong excel. Tôi đã viết mã sau cho rằngNgăn đóng băng trong Excel bằng C# và EPPlus

Worksheets.View.FreezePanes(5, 5); 

nhưng nó đóng băng cột trong 4 hàng đầu tiên. Tôi muốn đóng băng 4 cột đầu tiên trong excel ngoại trừ trong 4 hàng đầu tiên. Có thể làm được không?

+0

Không chắc tôi hoàn toàn hiểu những gì bạn đang cố gắng làm. Bạn đang nói bạn muốn đóng băng từ hàng 5 trở xuống? Vì vậy, khi bạn di chuyển các tế bào phải A1 qua D4 không bị đóng băng? Đây có phải là thứ bạn thậm chí có thể làm trong Excel không? – Ernie

Trả lời

23

Giá trị đầu tiên là số lượng hàng bạn muốn đóng băng và giá trị thứ hai là số lượng cột bạn muốn cố định. Vì vậy, để đóng băng 3 hàng đầu tiên và 5 cột mà bạn sẽ cần phải gọi nó là như sau:

Worksheets.View.FreezePanes(3, 5); 

Bạn cũng có thể có một cái nhìn tại this SO question để biết thêm thông tin về FreezePanes.

+1

Tại thời điểm hiện tại, đóng băng hàng đầu bằng cách nào đó sẽ vô hiệu hóa cuộn ngang. – Rozen

-3

Bạn có thể gọi phương thức tờ .zeze (int rowIndex, int columnIndex) để đặt vùng đóng băng.

Mã mẫu:

using System; 
using Spire.Xls; 
using System.Drawing; 

namespace FreezePane 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      //Load File 
      Workbook workbook = new Workbook(); 
      workbook.LoadFromFile 
       (@"E:\Work\Documents\ExcelFiles\UserInfo.xlsx"); 
      Worksheet sheet = workbook.Worksheets[0]; 

      //Freeze Top Row 
      sheet.FreezePanes(2, 1); 

      //Save and Launch 
      workbook.SaveToFile("FreezePane.xlsx", ExcelVersion.Version2010); 
      System.Diagnostics.Process.Start(workbook.FileName); 
     } 
    } 
} 
+1

Tôi nghĩ OP được hỏi cụ thể về 'EPPlus', không phải' Spire.Xls'. –

11

Đối với tôi để đóng băng các mã hàng sau lần đầu tiên làm việc. Tôi không chắc logic ở đó là gì.

worksheet.View.FreezePanes(2,1); 
+1

CÓ. 'sheet.View.FreezePanes (6, 1);' đóng băng 5 hàng đầu tiên cho tôi. –

+0

Tôi giả sử bạn phải thêm một số vào hàng/cột được cố định vì Excel hoạt động theo cùng một cách.Để cố định hàng đầu tiên trong Excel, bạn phải chọn * hai * hàng đầu tiên (Đừng hỏi tôi tại sao) –

+2

@AustinAdams: bởi vì (trong excel cũng như trong epplus) bạn cần chỉ ra ô đại diện cho phần trên góc bên trái của khu vực không đông lạnh. Về cơ bản bạn đang nói: "ok, đây là ô trên cùng bên trái của vùng có thể cuộn, tất cả các ô ở trên được coi là tiêu đề cột và tất cả các ô ở bên trái được coi là tiêu đề hàng" – digEmAll

3

Từ đối tượng ExcelWorksheet, truy cập vào Xem tài sản.

Trên đối tượng ExcelWorksheetView trở về, gọi FreezePanes (hàng, cột) phương pháp, đi qua các hàng và cột của ô đầu tiên mà không phải là đông lạnh.

Ví dụ, để đóng băng hoàn chỉnh đầu tiên hai tấm Excel Worksheet, bạn sẽ cần phải vượt qua trong cột (3,1) tới tham số liên tiếp:

worksheetObject.View.FreezePanes(3, 1); 

Vì vậy, để Chỉ cố định hàng đầu tiên hoàn toàn bạn hiện có thể gọi worksheetObject.View.FreezePanes(2,1); chỉ!

Đây là also mentioned trong ví dụ chính thức về EPPlus.

Do đó để trả lời câu hỏi ban đầu nêu ra bởi @ user2148124 câu trả lời nên

worksheetObject.View.FreezePanes(3, 5); 
Các vấn đề liên quan