我正在尝试将 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
现在,我想将 Bob 的 Zip 更新为“无”。
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
我错过了一些简单的东西吗?文档非常稀少,但我已经阅读了互联网在这个包上提供的所有内容。我很感激你的时间。