Предел длины ячейки Excel

33947
rlb.usa

Excel отказывается открывать некоторые файлы, которые я программно создаю. Я думаю, что происходит то, что он рвется, потому что конкретный столбец имеет очень длинные строки (до 1850 символов), но для устранения неполадок, когда я делаю строки более короткими (900 символов), он открывается.

Вопрос № 1: Какую самую длинную строку я могу поместить в клетку? Некоторые результаты Google говорят, что 1024 или 7000, но я нашел 1000 слишком длинным.

Вопрос № 2: я пытался писать свои файлы в формате XML и XLS, но у обеих есть одна и та же проблема длины строки. Есть ли формат, который будет читать Excel, который позволит мне соответствовать строкам длиной 1850?

6
это большой урод # KronoS 14 лет назад 0
1800 - это размер трех скромных абзацев. rlb.usa 14 лет назад 0
Вам нужно указать свою версию Excel, так как это одна из многих особенностей разных версий. Jarvin 14 лет назад 0
Это MS Excel 2007 rlb.usa 14 лет назад 0
Какой код вы используете для его создания? Возможно, проблема в том, что тип файла не указан. daneshjai 8 лет назад 0

5 ответов на вопрос

6
Lunatik

Даже Excel 2003 может легко обрабатывать 32 767 символов в ячейке, но версии до Excel 2007 отображают только первые 1024 символа в ячейке ( источник MS ).

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

Следующая ссылка относится к Excel 2003, но, похоже, это та же проблема, что и у вас.

http://support.microsoft.com/kb/818808/en-us

3
Jarvin

В соответствии с этим в Excel 2003 было установлено ограничение в 1 КБ на ячейку, которое в Excel 2007 увеличилось до 32 КБ на ячейку. Если ваша программа программно создает файл Excel 2003 (.xls), а не файл Excel 2007 (.xlsx), то это может быть причиной проблемы, поскольку формат .xls не поддерживает более 1 000 символов на ячейку.

У вас не должно быть проблем с форматом XML или XLS, идущим непосредственно в Excel 2007, поскольку ограничение Excel 2003 не должно быть задействовано, но я не могу проверить это, так как у меня нет Excel 2007, но, надеюсь, это был полезен независимо.

Я думаю, что ваш ответ правильный, но он мне не помогает, и он по-прежнему отвергает мои 1 800 << 32 000 символов. Я подожду и посмотрю, может кто-нибудь придумать что-нибудь. rlb.usa 14 лет назад 0
3
Adam Butler

Официальные ограничения Excel говорят, что все должно быть в порядке:

http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-HP010073849.aspx

да это правильная ссылка. Anonymous Type 11 лет назад 0
1
Tom Pham

Если вы получаете данные от ADO, попробуйте коды ниже. Это сработало для меня.

Activecell.value=LEFT(YourRecordset("FieldName"), LEN(YourRecordset("FieldName"))) 

По сути, вы получаете все содержимое поля, но по-другому. Поскольку длина содержимого более 900 (по моему опыту), вы должны использовать альтернативный способ. Вам не нужно придерживаться LEFTфункции; RIGHTфункция также работает.

1
LSC

In Excel 2013 (and I assume in Excel 2007 and later) the length of a string displayed in a single cell is 1024 characters. I discovered this by accident when I wrote a longer string created in VBA into a single Excel cell, which was the last cell in the column to contain data. The usual display of a long string in cells to the right terminated after 1024 characters. However, the len function correctly returned the actual size of the string and copying the string (which was a list of email addresses) and pasting it into Outlook gave the correct string. It seems that the longer string available in Excel 2007 and later work fine, but will not display completely.

Похожие вопросы