2013-02-06 79 views
5

Tôi đang xuất bảng từ SQLite đến Excel (2010) trong C#. Nó hoạt động tốt. Tôi đang sử dụng phương pháp Excel.Range.set_Value().C# Định dạng Excel Interop giống như định dạng của Excel dưới dạng bảng

Làm cách nào để định dạng Excel.Range như định dạng Excel's (như bảng)?

+0

Khi áp dụng một trong các Kiểu bảng được xây dựng trong Excel 2010? Bạn có thể đặt thuộc tính TableStyle của Phạm vi của bạn thành TableStyleMedium1 hoặc bất kỳ Kiểu Bảng được tích hợp nào. –

Trả lời

10

Để mở rộng khi nhận xét của tôi và thêm vào D Stanley.

Range range = ws.get_Range("A1:D5"); 
wrksheet.ListObjects.AddEx(XlListObjectSourceType.xlSrcRange, range, missing, Microsoft.Office.Interop.Excel.XlYesNoGuess.xlNo, missing).Name = "MyTableStyle"; 
wrksheet.ListObjects.get_Item("MyTableStyle").TableStyle = "TableStyleMedium1"; 
+0

Cảm ơn bạn! Tôi đã sử dụng phiên bản Interop cũ! – Horbert

+0

David Yenglin: công việc này thật đáng kinh ngạc !, chỉ là một vấn đề mà tôi đang gặp phải. Tất cả tên gốc coulmns của tôi tự động thay đổi thành cột1, column2, coulmn3, vv ....... bạn có biết cách giữ tên coulmn gốc không? – Mana

+2

oki, vì vậy tôi gặp vấn đề này bằng cách thay đổi một chút mã của bạn, XlYesNoGuess.xlNo -> XlYesNoGuess.xlYes – Mana

-1

Đây là VBA nào đó:

ActiveSheet.ListObjects.Add xlSrcRange, Range("$J$10:$N$12"), , xlYes 

không nên quá khắt khe để dịch sang một cuộc gọi tự động hóa. Bạn cũng có thể read the documentation.

2

Ví dụ này chọn phạm vi hình chữ nhật của mỗi ô trong trang tính hiện hoạt. Ngoài ra, nó sử dụng các tham số được lập chỉ mục của Phạm vi để có được các điểm phạm vi. Hơn nữa, AddEx() (và hầu hết các phương thức trong Interop.Excel) sử dụng các tham số mặc định để bạn không phải sử dụng System.Reflection.Missing.

// define points for selecting a range 
// point 1 is the top, leftmost cell 
Excel.Range oRng1 = oSheet.Range["A1"]; 
// point two is the bottom, rightmost cell 
Excel.Range oRng2 = oSheet.Range["A1"].End[Excel.XlDirection.xlToRight] 
    .End[Excel.XlDirection.xlDown]; 

// define the actual range we want to select 
oRng = oSheet.Range[oRng1, oRng2]; 
oRng.Select(); // and select it 

// add the range to a formatted table 
oRng.Worksheet.ListObjects.AddEx(
    SourceType: Excel.XlListObjectSourceType.xlSrcRange, 
    Source: oRng, 
    XlListObjectHasHeaders: Excel.XlYesNoGuess.xlYes); 
Các vấn đề liên quan