DatagridView при экспорте не разбивает строку в той же ячейке - PullRequest
0 голосов
/ 01 ноября 2018

как вы можете видеть на картинках: В Datagridview я разбиваю строку, однако при экспорте в excel строка разбивается на ячейку ниже.

Мне нужно разбить строку в той же ячейке

 dataGridView1.Columns[0].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
 dataGridView1.Columns[1].DefaultCellStyle.WrapMode = DataGridViewTriState.True;

 dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
 dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
 dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;

В сетке он работает правильно, пример строки, которую я получаю:

"Ao sol da manhã\r\n uma gota de orvalho\r\n precioso diamante."

При экспорте в Excel не разбивает текст в «одинаковую» ячейку и да в нижнюю строку. enter image description here

private void button2_Click(object sender, EventArgs e)
{
    copyAlltoClipboard();
    Microsoft.Office.Interop.Excel.Application xlexcel;
    Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
    Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
    object misValue = System.Reflection.Missing.Value;
    xlexcel = new Microsoft.Office.Interop.Excel.Application();
    xlexcel.Visible = true;
    xlWorkBook = xlexcel.Workbooks.Add(misValue);
    xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
    Microsoft.Office.Interop.Excel.Range CR = (Microsoft.Office.Interop.Excel.Range)xlWorkSheet.Cells[1, 1];
   // Qubra de linha
   // xlWorkSheet.Range["B1:B500"].Cells.WrapText = true;
    xlWorkSheet.Columns[2].Cells.WrapText = true;
    xlWorkSheet.Columns[2].ColumnWidth += 15;
    //xlWorkSheet.Columns[2].AutoFit();
    xlWorkSheet.Columns[2].Cells.WrapText = true;
    xlWorkSheet.Columns[2].Style.WrapText = true;
    xlWorkSheet.Cells[8, 2].Style.WrapText = true;
    xlWorkSheet.Cells[9, 2].Style.WrapText = true;
    xlWorkSheet.Cells[10, 2].Style.WrapText = true;
    xlWorkSheet.Columns[2].WrapText = true;
    //Set Text-Wrap for all rows true//
    xlWorkSheet.Rows.WrapText = true;
    CR.Select();
    xlWorkSheet.PasteSpecial(CR, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true);          
}

Как вы видите, когда разбиваете текст на Excel, он разбивается не внутри одной ячейки, а для новых строк. Как я могу решить это?

1 Ответ

0 голосов
/ 01 ноября 2018
Please Change last line of your code (PasteSpecial) and try below code.
please use Row and column variables as per your code.

Microsoft.Office.Interop.Excel.Range PastToRange =
oExcel.CreateRange(row,FromCol,ToCol,ToRow,TmpWorkSheet);
PastToRange.PasteSpecial(Microsoft.Office.Interop.Excel.XlPasteType.xlPasteAll,
Microsoft.Office.Interop.Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone,
false, false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...