2015-04-19 29 views
11

Tôi đang sử dụng thư viện Epplus để chuyển đổi dataTable trong Excel. Tôi đang sử dụng vùng văn bản trong trang web giao diện người dùng của mình. Trong đó một ngắt dòng cũng có. Nhưng, vấn đề là khi tôi chuyển đổi tệp này sang Excel, văn bản hiển thị trong một dòng không có ngắt dòng.Làm cách nào để ngắt dòng trong excel epplus C#

Làm cách nào để thêm ngắt dòng trong Excel Epplus.

Tôi đang sử dụng các kịch bản sau đây:

using (ExcelPackage pck = new ExcelPackage(newFile)) { 
    ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Accounts"); 
    ws.Cells["A1"].LoadFromDataTable(dataTable, true); 
    pck.Save(); 
} 

Trả lời

1

.LoadFromDataTable() sẽ giữ gìn linebreaks mà tồn tại trong dữ liệu trong dataTable.

Chạy ví dụ nhỏ này tạo ra một bảng tính nơi chuỗi trong ô A2 chứa các ngắt dòng:

DataTable dt = new DataTable(); 
dt.Clear(); 
dt.Columns.Add("TestCol"); 
DataRow row = dt.NewRow(); 
row["TestCol"] = "string that"+Environment.NewLine+"contains a linebreakc"; 
dt.Rows.Add(row); 

using (var package = new ExcelPackage()) 
{ 
    ExcelWorksheet ws = package.Workbook.Worksheets.Add("DataTable"); 
    ws.Cells["A1"].LoadFromDataTable(dt, true); 

    package.SaveAs(new FileInfo(@"C:\Temp\test.xlsx")); 
} 

tôi đoán hoặc là dữ liệu doesnt chứa một linebreak hoặc chỉ của nó là một trường hợp mà bạn chỉ có thể xem một dòng khi bạn mở bảng tính vì chiều cao hàng?

+0

+1 Tính năng này hoạt động nhưng không tự động định dạng ô để văn bản được hiển thị chính xác. (Chỉ cần báo trước emptor) – Chad

10

Bạn có bật tính năng bọc văn bản trên các ô không? Nó được tắt theo mặc định. Vì vậy, một cái gì đó như thế này:

<body> 
    <form id="form1" runat="server"> 
    <div> 
     <textarea id="TextArea1" style="height: 200px; width: 400px;" runat="server"></textarea> 
    </div> 
    <div> 
     <asp:Button ID="Button1" runat="server" OnClick="Button1_OnClick" Text="Button" /> 
    </div> 
    </form> 
</body> 

Và đây:

protected void Button1_OnClick(object sender, EventArgs e) 
{ 
    //Create the table from the textbox 
    var dt = new DataTable(); 
    dt.Columns.Add("Column1"); 

    var dr = dt.NewRow(); 
    dr[0] = TextArea1.InnerText; 

    dt.Rows.Add(dr); 

    var excelDocName = @"c:\temp\temp.xlsx"; 
    var aFile = new FileInfo(excelDocName); 

    if (aFile.Exists) 
     aFile.Delete(); 

    var pck = new ExcelPackage(aFile); 
    var ws = pck.Workbook.Worksheets.Add("Content"); 
    ws.Cells["A1"].LoadFromDataTable(dt, true); 
    ws.Cells["A1:A2"].Style.WrapText = true; //false by default 
    pck.Save(); 

} 

Và tôi thả này trong textarea:

This is line 1. 

This is line 3. 

This is line 5. 

nào mở ra với ngắt dòng hiển thị.

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