在excel工作表(或SQLite)中的空单元格中填入上面最近的填充单元格的值
我在向SQLite数据库发送查询时遇到了一个问题 问题在于,数据库(源于excel工作表)有空单元格,在同一列中应该有值,这些值是从上面的单元格中给定的 换句话说,如果值不变,excel工作表的制作者会将同一列中的单元格留空。我实际上需要这些单元格中的值强> 由于表/db的大小,我无法手动执行此操作,是否有方法通过编程执行此操作 我真的更喜欢sql查询方式,如果有的话 致以最良好的祝愿,在excel工作表(或SQLite)中的空单元格中填入上面最近的填充单元格的值,sql,excel,fill,cells,Sql,Excel,Fill,Cells,我在向SQLite数据库发送查询时遇到了一个问题 问题在于,数据库(源于excel工作表)有空单元格,在同一列中应该有值,这些值是从上面的单元格中给定的 换句话说,如果值不变,excel工作表的制作者会将同一列中的单元格留空。我实际上需要这些单元格中的值 由于表/db的大小,我无法手动执行此操作,是否有方法通过编程执行此操作 我真的更喜欢sql查询方式,如果有的话 致以最良好的祝愿, Tor查询整个数据库,保持原始排序顺序,然后迭代每一行。如果某个内容为空,则使用上面的值更新它 编辑:您可以在此
Tor查询整个数据库,保持原始排序顺序,然后迭代每一行。如果某个内容为空,则使用上面的值更新它 编辑:您可以在此处使用类似的方法:
SQLiteDatabase db = SQLiteDatabase.openDatabase("myDb.db", null, SQLiteDatabase.OPEN_READWRITE);
Cursor c = db.query("table", null, null, null, null, null, "the column that defines the sort order");
if (c != null) {
int columnCount = c.getColumnCount();
String[] lastValues = new String[columnCount];
while (c.moveToNext()) {
ContentValues cv = new ContentValues();
for (int i = 0; i < columnCount; i++) {
String value = c.getString(i);
if (TextUtils.isEmpty(value)) {
// if that happens on first column you are screwed anyways.
cv.put(c.getColumnName(i), lastValues[i]);
} else {
lastValues[i] = value;
}
// we need to save some id here
}
if (cv.size() > 0) {
// use the id here
db.update("table", cv, "column=?", new String[] { "id" });
}
}
c.close();
}
SQLiteDatabase db=SQLiteDatabase.openDatabase(“myDb.db”,null,SQLiteDatabase.OPEN\u READWRITE);
游标c=db.query(“表”,null,null,null,null,null,“定义排序顺序的列”);
如果(c!=null){
int columnCount=c.getColumnCount();
String[]lastValues=新字符串[columnCount];
while(c.moveToNext()){
ContentValues cv=新的ContentValues();
对于(int i=0;i0){
//在这里使用id
update(“table”,cv,“column=?”,新字符串[]{“id”});
}
}
c、 close();
}
但我建议您使用Excel来修复数据库。这更容易,而且您不需要理解上面的代码。您可以在excel中执行此操作。我在这里回答了一个类似的问题: 您也可以完全在excel中执行此操作: 选择列(或您正在使用的任何范围),然后转到 编辑>转到(Ctrl+G)并单击特殊。选中空白并单击“确定”。这 将仅选择列表中的空单元格。现在输入=键, 然后按向上箭头键和ctrl-enter键 这将在每个空白单元格中放入一个公式,以与上面的单元格相等 信息技术然后,您可以复制^paste值,仅用于删除 公式
与@maneesha提出的方法类似的方法是,用空白单元格过滤,然后写出“等于上单元格”公式,然后清除过滤器
但我认为@maneeshas的解决方案更酷。这是安卓的问题吗?请考虑删除标签,如果它不适用。是和否。该数据库适用于Android应用程序,虽然它不是一个Android特定的问题。标记已删除。如果忘记了数据输入,您如何知道上面的内容是正确的?我如何准确地执行该操作?