Форматирование ячейки JXL

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

27
задан Cœur 1 January 2017 в 15:06
поделиться

2 ответа

Из JExcelApi FAQ

Как мне выполнить эквивалент «Выбор формата / столбца / автоподгонки» в Excel?

Для этого нет функции API. Вам нужно будет написать код, который сканирует ячейки в каждом столбце, вычисляет максимальную длину, а затем соответственно вызывает setColumnView (). Это приблизит вас к тому, что делает Excel, но не совсем. Поскольку большинство шрифтов имеют символы переменной ширины, чтобы получить точно такое же значение, вам нужно будет использовать FontMetrics для расчета максимальной ширины каждой строки в столбце. Никто еще не опубликовал код, как это сделать. Не стесняйтесь отправлять код на Yahoo! группы или отправьте его непосредственно автору FAQ, указанному внизу этой страницы.

FontMetrics предположительно относится к java.awt.FontMetrics . Вы должны уметь что-то придумать с помощью метода getLineMetrics (String, Graphics), который у меня был бы.

Не стесняйтесь отправлять код на Yahoo! группы или отправьте его непосредственно автору FAQ, указанному внизу этой страницы.

FontMetrics предположительно относится к java.awt.FontMetrics . Вы должны уметь что-то придумать с помощью метода getLineMetrics (String, Graphics), который у меня был бы.

Не стесняйтесь отправлять код на Yahoo! группы или отправьте его непосредственно автору FAQ, указанному внизу этой страницы.

FontMetrics предположительно относится к java.awt.FontMetrics . Вы должны уметь что-то придумать с помощью метода getLineMetrics (String, Graphics), который у меня был бы.

2
ответ дан 28 November 2019 в 04:37
поделиться

У меня есть предложение, которое сильно отличается от тех, что у вас уже есть. Если вам придется придерживаться базы данных SQL и вы не знаете никакой java это предложение не будет много использовать.

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

Проект Neo4j предоставляет базу данных графов на основе дисков, которая будет объединять множество алгоритмов графов для работы с ней. Quote:

Neo4j - это графическая база данных. Это встраиваемые, дисковые, полностью транзакционный механизм сохранения Java хранит данные, структурированные в графиках а не в таблицах. Граф (математический линго для сети) гибкая структура данных, позволяющая более гибкий и быстрый стиль развитие.

Соответствующий пример использования Neo4j на их вики демонстрирует степень разделения веб-приложения с использованием данных IMDB. Пример иллюстрирует вычисления кратчайшего пути между любым актером и Кевином Бэконом.

Мне нравится этот пример, поскольку он много говорит о моделировании области, которую будет представлять ваш граф. Моделирование вашего домена гарантирует, что вы задумались о таких вещах, как:

  1. Directed vs Undirected
  2. Edge types/relationships
  3. Атрибуты, такие как edge weights

Как уже упоминалось в других публикациях, существует ряд алгоритмов для вычисления кратчайших путей, таких как Dijkstra, Floyd Warshall или BFS S. Все они реализованы в Neo4j, и некоторые примеры приведены здесь .

Элемент управления -121--1645610-

WebBrowser наследует стиль дисплея из класса элементов управления. Если вы хотите контролировать стиль границы управления, вы можете использовать такой код, например, в Form.Designer.cs:


    using System;
    using System.ComponentModel;
    using System.Windows.Forms;

    public class wbExt : System.Windows.Forms.WebBrowser
    {
        private BorderStyle _borderStyle;
        [
        Category("Appearance"),
        Description("The border style")
        ]

        public BorderStyle BorderStyle
        {
            get
            {
                return _borderStyle;
            }
            set
            {
                _borderStyle = value;
                this.RecreateHandle();
                Invalidate();
            }
        }

        protected override CreateParams CreateParams
        {
            get
            {
                const int WS_BORDER = 0x00800000;
                const int WS_EX_STATICEDGE = 0x00020000;
                CreateParams cp = base.CreateParams;
                switch (_borderStyle)
                {
                    case BorderStyle.FixedSingle:
                        cp.Style |= WS_BORDER;
                        break;
                    case BorderStyle.Fixed3D:
                        cp.ExStyle |= WS_EX_STATICEDGE;
                        break;
                }
                return cp;
            }
        }

        public wbExt()
        {
        }
    }

Теперь вы можете изменить созданный код в классе Form.

private wbExt webBrowser1;

и перезаписать создание предмета webBrowser в InitialityComponent формы, например:

this.webBrowser1 = new WindowsFormsApplication1.wbExt();
Итак, теперь
webBrowser1.BorderStyle = BorderStyle.None;
удалит все границы из управления webBrowser. -121--4349555-

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

Автоматический размер CellView

Я не уверен, почему часто задаваемые вопросы не упоминают об этом, потому что он очень четко существует в документах.

Код выглядел следующим образом:

for(int x=0;x<c;x++)
{
    cell=sheet.getColumnView(x);
    cell.setAutosize(true);
    sheet.setColumnView(x, cell);
}

c сохраняет количество созданных столбцов
ячейка является лишь временным держателем места для возвращенного объекта CellView
sheet - это мой объект WritureSheet

API предупреждает, что это функция с интенсивным использованием процессора, поэтому она, вероятно, не идеально подходит для больших файлов. Но для такого небольшого файла, как мой (< 100 строк), не потребовалось заметного времени.

Надеюсь, это кому-то поможет.

42
ответ дан 28 November 2019 в 04:37
поделиться
Другие вопросы по тегам:

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