2012-10-03 32 views
5

khi tôi chuyển đổi DataTable để .csv tờ excel của tôi được tạo ra như dưới đây: enter image description herelập trình nổi trội các tế bào để được tự động phù hợp với chiều rộng & chiều cao

và cố gắng như dưới đây:

sw.Write(string.Format("=\"{0}\"", drow[i].ToString())); 

sau đó tờ excel của tôi giống như:

enter image description here

lưu ý rằng các tế bào có ="" ký tự;

Tôi đang cố gắng làm như chiều rộng tự động vừa chiều rộng & chiều cao của mỗi ô theo lập trình. Làm sao?

+2

Bạn đã thử 'Excel.Rows.AutoFit' và' Excel.Columns.AutoFit' chưa? – paul

+1

Bạn chỉ cần tạo tệp .csv hoặc bạn đang sử dụng Microsoft.Office.Interop.Excel để tạo tệp excel thực tế? – VoltaicShock

+0

@paul lúc này tôi chỉ đang tạo xl theo luồng; Tôi có cần phải tải rằng xl trong interop? cảm ơn cho trả lời của bạn .... –

Trả lời

1

Tôi thấy điều này trên một trang khác:

C#

http://www.spreadsheetgear.com/support/help/spreadsheetgear.net.3.0/SpreadsheetGear~SpreadsheetGear.IRange~AutoFit.html

// Tự động thiết lập chiều rộng trên các cột B và C. worksheet.Cells. [ "B: C"] Cột .AutoFit();

// Đặt chiều cao hàng thành tự động trên các hàng từ 7 đến 9. worksheet.Cells ["7: 9"]. Rows.AutoFit();

+0

cảm ơn câu trả lời của bạn. tôi đã làm rồi. –

+0

Điều đó ("xlWorkSheet.Cells [" 1:10 "]. Rows.AutoFit();") đưa ra một lỗi cho tôi, cụ thể hơn là "System.Runtime.InteropServices.COMException đã bị hủy bỏ" –

9

Hãy thử lấy phạm vi và sau đó làm AutoFit

Range.Rows.AutoFit(); 
Range.Columns.AutoFit(); 
2

câu hỏi này chỉ giúp tôi để giải quyết một phần của vấn đề. Tôi đã phải sao chép dữ liệu vào một trang phụ, sau đó gửi nó đến datagrid, nhưng khi tôi đã làm, nó sẽ hiển thị trong chuỗi dữ liệu của ######### cho một số dữ liệu của tôi lớn hơn chính trường đó. Vì vậy, tôi đã sử dụng **sheets.UsedRange.Columns.AutoFit();** để giải quyết vấn đề mỗi lần tạo cột mới. Trường hợp tờ là biến của tôi đã nhận được **Microsoft.Office.Interop.Excel.Worksheet**.

Cảm ơn các bạn rất nhiều.

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