РЕШЕНО — Excel: текст в ячейке усекается после сохранения

По-видимому, существует ограничение на количество символов в 250/ячейку

Обходной путь: если вам нужно больше слов, требующих более 250 символов, используйте текстовое поле, вставьте в ячейка

Я не нашел параметра настройки для увеличения 250/ячейка

Windows 10 Enterprise: Excel

Некоторая часть моего текста (общий формат) в ячейках обрезается после того, как я сохраняю и закрываю файл.

Кажется, это происходит только с последним столбцом ячеек рабочего листа; и опять же, это не все клетки; некоторые из них усекаются, а некоторые нет.

Я увеличил размер окна ячейки, чтобы убедиться, что все текстовое поле находится внутри перед сохранением.

Одно только сохранение не приводит к усечению; эта проблема возникает только после закрытия и повторного открытия.

Q: есть ли ограничение на количество символов для каждой ячейки?

Есть предложения по дальнейшей отладке?


Да, есть это предел https://support.office.com/en-us/article/Excel-specifications-and-limits-1672b34d-7043-467e-8e27-269 …

Общее количество символов, которое может содержать ячейка

32 767 символов

(около 2 ^ 16).

Однако максимальное количество отображаемых символов составляет 1024. Зависит от версии и форматирования ячеек.

Таким образом, текст не усекается, вы можете проверить с помощью = LEN (), он не отображается как заполненный после повторного открытия.



PDF при печати с усечением содержимого

Привет,

Я сохраняю PDF-файл, чтобы собрать как можно больше столбцов.
Фрагмент кода выглядит следующим образом:

ByteArrayOutputStream dstStrea m = new ByteArrayOutputStream ();
PdfSaveOptions saveOptions = new PdfSaveOptions (SaveFormat.PDF);
//Установить AllColumnsInOnePagePerSheet в значение true
saveOptions.setAllColumnsInOnePagePerSheet (true br> >//Сохраняем книгу в PDF-файл fromart, передав объект PdfSaveOptions
workbook.save (dstStream, saveOptions);

Сохраненный PDF-файл выглядит хорошо.

Проблема заключается в печати этого PDF-файла. Он печатает только несколько столбцов. Есть ли способ сохранить PDF-файл таким образом, чтобы при печати он накапливал все содержимое из PDF-файла. Я выполняю печать вручную, а не с помощью кода.

Примечание. Использование Aspose JAVA.

Спасибо,
Хариш


@HThagunna,
Кажется, эта проблема не связана с Aspose.Cells. При большом количестве столбцов вы можете получить нечитаемую распечатку. Вы можете создать аналогичный PDF-файл с помощью Excel и протестировать сценарий. Если вы получите подходящее решение с помощью Excel, поделитесь с нами инструкциями. Мы постараемся помочь в достижении того же с помощью Aspose.Cells.


@HThagunna,
Мы исследовали это немного больше, потому что когда мы установить saveOptions.setAllColumnsInOnePagePerSheet (true). Ширина страницы формата страницы будет проигнорирована, ширина выходной страницы PDF может быть больше, чем ширина бумаги принтера при ее печати. ​​

Вы можете выбрать «Сжимать негабаритные страницы», когда вы распечатайте PDF-файл. См. Прикрепленный снимок экрана print.png (87,9 КБ)

Или вы можете использовать Worksheet.setFitToPagesWide (1), который не нарушит настройку размера бумаги на листе.

   Workbook workbook = new Workbook (srcFile); for (int i = 0; i  

Спасибо. Это сработало нормально.

У меня есть еще один вопрос: я хочу повторно отрегулировать ширину столбца в зависимости от значения, которое содержит конкретный столбец. Прямо сейчас, если у нас есть заголовок столбца с 2-3 словами, он занимает всю ширину в одной строке, даже если у него есть короткие значения длины для этого столбца.
Мы конвертируем Excel в PDF.

Спасибо,
Хариш


@HThagunna,
Вы можете попробовать автоподбор столбца в диапазоне ячеек, чтобы строка заголовка пропускалась . Попробуйте использовать пример кода в следующей статье и поделитесь отзывами.

Столбец автозаполнения в диапазоне ячеек


Я уже используя код как:

def workheet = workbook.getWorksheets (). get (j)
worksheet.autoFitRows ();
worksheet.autoFitColumns ();

Благодаря этому у меня хорошо отрегулировано содержимое, но не заголовок. Я тоже приложил скриншот. Например, я хочу, чтобы пол члена был обернут так, чтобы член и пол были в разных строках.

Спасибо,
HarishScreen Shot 2019-07-25 в 11.39.53. png (59,1 КБ)


@HThagunna,
Вы можете попробовать использовать перенос текста для ячеек заголовков только, как показано в следующем примере кода:

 //Создаем workbookWorkbook workbook = new Workbook ();//Доступ к worksheetWorksheet worksheet = workbook.getWorksheets (). get (0);//Помещаем текст в ячейку A1 с wrappingCell cellA1 = worksheet  .getCells (). get ("A1"); cellA1.putValue ("Пол участника"); Style style = cellA1.getStyle (); style.setTextWrapped (true); cellA1.setStyle (style);//Размещение текста  в других ячейкахworksheet.getCells (). get ("A2"). putValue ("M"); worksheet.getCells (). get ("A3"). putValue ("M"); worksheet.getCells (). get (  "A4"). PutValue ("F"); worksheet.getCells (). Get ("A5"). PutValue ("F");//Автозаполнение строкworksheet.autoFitRows ();//Сохранение книгиworkbook.save ("  output.xlsx ", SaveFormat.XLSX);  

Сделать у нас есть способ обернуть текст, не указав конкретную ссылку на ячейку, а для всех ячеек одновременно. У меня будет более 100 страниц с таким же заголовком. Утомительно выбирать каждую ячейку и включать перенос текста по ячейке.


@HThagunna,
Вы можете использовать функцию ApplyRowStyle (), чтобы установить перенос текста для всех столбцы заголовков сразу, как показано в следующем примере кода.

 //Создание книги Workbook workbook = new Workbook (); //Доступ к рабочему листу Worksheet worksheet = workbook.getWorksheets (). Get (0); //Помещаем текст в первую строку заголовка workheet.getCells (). Get ("A1"). PutValue ("Member Id");  worksheet.getCells (). get ("B1"). putValue ("Пол участника");  worksheet.getCells (). get ("C1"). putValue ("Возраст участника");  Стиль стиля = workbook.getDefaultStyle ();  style.setTextWrapped (правда); //cellA1.setStyle(style);  Флаг StyleFlag = новый StyleFlag ();  flag.setAll (правда);  workheet.getCells (). applyRowStyle (0, стиль, флаг);  worksheet.getCells (). get ("A2"). putValue ("1");  worksheet.getCells (). get ("A3"). putValue ("2");  worksheet.getCells (). get ("A4"). putValue ("3");  worksheet.getCells (). get ("A5"). putValue ("4");  worksheet.getCells (). get ("B2"). putValue ("M");  workheet.getCells (). get ("B3"). putValue ("M");  workheet.getCells (). get ("B4"). putValue ("F");  worksheet.getCells (). get ("B5"). putValue ("F");  worksheet.getCells (). get ("C2"). putValue ("10");  workheet.getCells (). get ("C3"). putValue ("20");  worksheet.getCells (). get ("C4"). putValue ("30");  worksheet.getCells (). get ("C5"). putValue ("40"); //Автоподбор строк worksheet.autoFitRows (); //Сохраняем книгу workbook.save ("output.xlsx", SaveFormat.XLSX);  

Я использовал пример кода, как показано ниже:
def workheet = workbook.getWorksheets (). get (j)
worksheet.autoFitRows ();
worksheet.autoFitColumns ();

//Для переноса заголовка текст
Style style = workbook.getDefaultStyle ();
style.setTextWrapped (true);
//cellA1.setStyle (style);
StyleFlag flag = new StyleFlag ();
flag.setAll (true);
worksheet.getCells (). ApplyRowStyle (1, style, flag);

PDF выглядит хуже. Снимок экрана прилагается.
Снимок экрана 2019-07-25, 14:57:52 PM.png (59,2 КБ)


С:

def workheet = workbook.getWorksheets (). get (j)

//Для текста переноса заголовка
Style style = workbook.getDefaultStyle ();
style. setTextWrapped (true);
//cellA1.setStyle(style);
StyleFlag flag = new StyleFlag ();
flag.setAll (true);
рабочий лист .getCells (). applyRowStyle (1, style, flag);

//def workheet = workbook.getWorksheets (). get (j)
worksheet.autoFitRows ();
worksheet.autoFitColumns ();

Переносить текст можно, но размер очень большой. Снимок экрана 2019-07-25 в 15.30.14.png (125. 3 КБ)


@HThagunna,
Вы можете создать ожидаемый выходной файл с помощью Excel и поделиться входным файлом, выходным файлом Excel (ваш ожидаемый результат) и точные шаги, выполняемые для этого. Мы постараемся помочь вам получить аналогичный результат с помощью Aspose.Cells.

Оцените статью
logicle.ru
Добавить комментарий