2013-07-19 60 views
6

Tôi đang tìm cách áp dụng đường viền cho một ô bằng cách sử dụng thư viện Microsoft.Office.Interop.Excel.Microsoft.Office.Interop.Excel: Cách Áp dụng đường viền cho ONE CELL

Tôi đang chạy một vòng lặp while tìm kiếm một ô trống trong một cột nhất định, khi ô được tìm thấy, tôi muốn áp dụng đường viền cho ô đó.

Tôi biết có nhiều diễn đàn về điều này bằng cách sử dụng Ranges, nhưng tôi không thể sử dụng chức năng phạm vi vì tôi không biết ô nào đang được áp dụng chính xác.

Ý tưởng của tôi là:

(Excel.Range) xlWS.Cells [liên tiếp, 1] .Borders.LineStyle = (Dù giá trị gia tăng);

Bạn có lời khuyên nào không? (bên cạnh các liên kết đến các diễn đàn khác, tôi đã xem qua hàng tấn biểu mẫu)?

+0

Vì vậy, những gì không làm việc với ý tưởng hiện tại của bạn? – chancea

+0

Nó đã được nhiều hơn một đoán, nhờ jiverson tôi đã có thể tạo ra mã thích hợp để làm điều đó! –

+0

Tuyệt vời! nếu câu trả lời của anh ấy giải quyết được vấn đề của bạn, hãy chắc chắn nhấp vào dấu kiểm để chấp nhận nó để chúng tôi biết câu hỏi này đã được giải quyết. – chancea

Trả lời

9
Microsoft.Office.Interop.Excel.Range range = sheet.UsedRange; 
    Microsoft.Office.Interop.Excel.Range cell = range.Cells[1][1]; 
    Microsoft.Office.Interop.Excel.Borders border = cell.Borders; 
    border[XlBordersIndex.xlEdgeLeft].LineStyle = 
     Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous; 
    border[XlBordersIndex.xlEdgeTop].LineStyle = 
     Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous; 
    border[XlBordersIndex.xlEdgeBottom].LineStyle = 
     Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous; 
    border[XlBordersIndex.xlEdgeRight].LineStyle = 
     Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous; 

Xem chi tiết answer để biết thêm chi tiết.

+0

Cảm ơn! Sử dụng lời khuyên của bạn tôi đã có thể tạo mã có chức năng tương tự trừ đi số lượng mã. –

11
  Excel.Range range = xlWS.UsedRange; 
      Excel.Range cell = range.Cells[row,column]; 
      Excel.Borders border = cell.Borders; 

      border.LineStyle = Excel.XlLineStyle.xlContinuous; 
      border.Weight = 2d; 

Hy vọng điều này sẽ giúp ai đó! Đặt một đường viền mỏng xung quanh ô [hàng, cột]!

+0

Điều này làm việc như tôi muốn. Điều duy nhất tôi thay đổi Excel.Range cell = range.Cells; – SubqueryCrunch

1

Điều này dựa trên câu trả lời của jiverson, nhưng ngắn gọn hơn nhiều cho các nhu cầu cơ bản; chỉ cần tạo một phạm vi, có biên giới của nó, và thêm một biên giới xuống đáy của dãy núi này:

var platypusRange = _xlSheet.Range[_xlSheet.Cells[1, 1], _xlSheet.Cells[1, 3]]; 
. . . 
Borders border = platypusRange.Borders; 
border[XlBordersIndex.xlEdgeBottom].LineStyle = XlLineStyle.xlContinuous; 

Tất nhiên, bạn có thể thêm một biên giới phía trên và hai bên cũng vậy, sử dụng xlEdgeTop, xlEdgeLeft, và xlEdgeRight .

3

Để mỗi tế bào trong phạm vi

Microsoft.Office.Interop.Excel.Range chartRange; 
chartRange = workSheet.get_Range("a1", "g7"); 
foreach (Microsoft.Office.Interop.Excel.Range cell in chartRange.Cells) 
{ 
    cell.BorderAround2(); 
} 

Để toàn bộ phạm vi

chartRange.BorderAround2(); 
+0

Tôi đang tìm kiếm điều này, cảm ơn Muhammad. BorderAround2() vẽ đường viền cho phạm vi nhất định – imsome1

Các vấn đề liên quan