2012-03-20 40 views
5

Tôi có một bảng html thường xuyên:tạo một file excel và tự động mở rộng cột độ rộng

<table> 
<tr>hello</tr> 
<tr>world</tr> 
</table> 

và tôi đang tạo ra một tập tin XLS ra khỏi nó:

string randomname = @"C:\attachmentsfolder\" + System.IO.Path.GetRandomFileName() + ".xls"; 
System.IO.File.WriteAllText(randomname, message); 

Khi tôi mở file XLS tạo ra, tôi cần phải mở rộng theo cách thủ công các cột để xem dữ liệu dài.

Câu hỏi của tôi là: Làm thế nào tôi có thể tạo tệp XLS này sao cho các cột đã được định kích thước chính xác?

+2

HTML của bạn là không hợp lệ, đối với người mới bắt đầu , vì vậy nó sẽ không bao giờ hoạt động. –

+0

lỗi của tôi chỉ khắc phục được –

Trả lời

1

Trong Excel VBA, bạn có thể đạt được hiệu quả mà bạn tìm kiếm với Rng.Columns.AutoFit. Tôi tin rằng tương đương C# là Rng.Columns.AutoFit();.

Tuy nhiên, tôi đồng ý với Diodeus, trước tiên bạn sẽ phải sửa html của mình.

0

Bạn cũng có thể sử dụng công cụ của bên thứ ba như ví dụ: Aspose.Cells để tạo tệp Excel.

Tôi đã sử dụng điều này trong rất nhiều dự án thành công. Nó cung cấp chức năng tự động phù hợp mà bạn yêu cầu.

3

Bạn có thể làm điều đó một cách dễ dàng với EPPlus (Open Source .NET Excel 2007+ thư viện), và bạn sẽ có một file excel hợp lệ, đây là đoạn code ví dụ:

public static void FitAndSaveToExcel(FileInfo excelFile, string sheetName) 
{ 
    ExcelPackage pack = new ExcelPackage(); 
    ExcelWorksheet ws = pack.Workbook.Worksheets.Add(sheetName); 
    ws.Cells[1, 1].Value = "Some Long text that needs fitting!"; 
    ws.Cells[1, 2].Value = "Short one"; 
    ws.Column(1).AutoFit(); 
    pack.SaveAs(excelFile); 
} 
Các vấn đề liên quan