Я пытаюсь включить Apache MetaModel в проект и продолжаю сталкиваться со странной проблемой. Я обновляю строку электронной таблицы Excel в коде. Код находит нужную строку, удаляет ее, затем добавляет строку (с моим обновлением) в конец электронной таблицы. Я бы хотел, чтобы обновление происходило на месте, а одни и те же данные оставались в той же строке. Я подумал, что я что-то делаю не так, а затем создал глупый простой проект, чтобы воспроизвести поведение. К сожалению, проблема остается.
Вот xlsx-файл:
Name Address City State Zip
Bob 123 Main St. Norman OK 11111
Fred 989 Elm Street Chicago IL 22222
Mary 555 First Street San Francisco CA 33333
Теперь я хочу обновить почтовый индекс Боба до «Нет».
package MMTest;
import java.io.File;
import org.apache.metamodel.UpdateableDataContext;
import org.apache.metamodel.excel.ExcelDataContext;
import org.apache.metamodel.schema.Column;
import org.apache.metamodel.schema.Schema;
import org.apache.metamodel.schema.Table;
import org.apache.metamodel.update.Update;
public class MMTest {
public static void main(String[] args) {
UpdateableDataContext excel = new ExcelDataContext(new File("C:/test/test.xlsx"));
Schema schema = excel.getDefaultSchema();
Table[] tables = schema.getTables();
assert tables.length == 1;
Table table = schema.getTables()[0];
Column Name = table.getColumnByName("Name");
Column Zip = table.getColumnByName("Zip");
excel.executeUpdate(new Update(table).where(Name).eq("Bob").value(Zip, "None"));
}
}
Довольно просто, верно? Неа. Вот результат:
Name Address City State Zip
<blank line>
Fred 989 Elm Street Chicago IL 22222
Mary 555 First Street San Francisco CA 33333
Bob 123 Main St. Norman OK None
Я пропустил что-то простое? Документации довольно мало, но я прочитал все, что может предложить Интернет по этому пакету. Я ценю ваше время.