Как я могу дать разрыв строки в excel epplus С#
Я использую библиотеку Epplus для преобразования dataTable
в Excel. Я использую textarea в своем интерфейсе. В котором существует разрыв строки. Но проблема заключается в том, что я конвертирую этот файл в Excel, текст отображается в одной строке не с разрывом строки.
Как добавить разрыв строки в Excel Epplus.
Я использую следующий скрипт:
using (ExcelPackage pck = new ExcelPackage(newFile)) {
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Accounts");
ws.Cells["A1"].LoadFromDataTable(dataTable, true);
pck.Save();
}
Ответы
Ответ 1
Вы включили перенос текста на ячейки? По умолчанию он отключен. Так что-то вроде этого:
<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>
И это:
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();
}
И я бросаю это в текстовое поле:
This is line 1.
This is line 3.
This is line 5.
Начнется отображение строк.
Ответ 2
.LoadFromDataTable()
будет сохранять .LoadFromDataTable()
, которые существуют в данных в dataTable
.
Выполнение этого минимального примера создает таблицу, в которой строка в ячейке A2 содержит разрыв строки:
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"));
}
Я бы предположил, что либо данные не содержат строки или его просто случай, когда вы можете видеть только одну строку при открытии электронной таблицы из-за высоты строки?