2016-09-29 7 views
0

Я использую Edittext в android для заполнения ячейки xls.file с помощью aspose-cell для API android. Но когда я помещаю некоторый текст в edittext, отображаемое значение в xls. файл всегда один и тот же: 2131492965 !! а не текст edittext.Невозможно поместить текстовое значение в файл xls, используя aspose.cell для android

Вы можете мне помочь?

Вот мой код:

MainActivity.java

package com.example.lionel.cells; 

import android.net.Uri; 
import android.os.AsyncTask; 
import android.os.Environment; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 


import com.aspose.cells.Cell; 
import com.aspose.cells.Cells; 
import com.aspose.cells.*; 
import com.aspose.cells.Workbook; 
import com.aspose.cells.Worksheet; 
import com.google.android.gms.appindexing.Action; 
import com.google.android.gms.appindexing.AppIndex; 
import com.google.android.gms.appindexing.Thing; 


import java.io.File; 

import static com.aspose.cells.b.b.zp.v; 
import static com.example.lionel.cells.R.id.button1; 

public class MainActivity extends AppCompatActivity { 

/** 
* ATTENTION: This was auto-generated to implement the App Indexing API. 
* See https://g.co/AppIndexing/AndroidStudio for more information. 
*/ 

public EditText mEditText; 
public String text; 


// public String text = textview.getText().toString(); 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    LibsLoadHelper.loadLibs(getApplicationContext()); 
    mEditText = (EditText) findViewById(R.id.Edittext1); 

    //  mEditText.setOnKeyListener(new EditText.OnKeyListener() 
    //  { 
    //   @Override 
    //   public boolean onKey(View view, int keyCode, KeyEvent  keyEvent) { 
    // 
    //    if(KeyEvent.KEYCODE_ENTER == keyCode) 
    //    { 
    //     if(KeyEvent.ACTION_UP == keyEvent.getAction()) 
    //     { 
    //      EditText editText = (EditText)view; 
    //      mCellValue = editText.getText().toString(); 
//      Toast.makeText(MainActivity.this, mCellValue, Toast.LENGTH_SHORT).show(); 
//     } 
//     return true; 
//    } 
//    return false; 
//   } 
//  }); 

    text = mEditText.getText().toString(); 
    Button btn = (Button) findViewById(R.id.button1); 
    btn.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      new TestTask().execute(); 
     } 
    }); 


} 

} 

TestTask.java:

package com.example.lionel.cells; 

import android.os.AsyncTask; 
import android.os.Environment; 
import android.widget.TextView; 
import android.widget.Toast; 

import com.aspose.cells.Cell; 
import com.aspose.cells.Cells; 
import com.aspose.cells.Workbook; 
import com.aspose.cells.Worksheet; 

import java.io.File; 
import java.io.IOException; 

import static com.example.lionel.cells.R.id.text; 

/** 
* Created by Lionel on 25/09/2016. 
*/ 





public class TestTask extends AsyncTask<Void, String, Boolean> { 

// File sdDir = Environment.getExternalStorageDirectory(); 
File sdDir =   Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); 
String sdPath = sdDir.getAbsolutePath(); 





@Override 
protected Boolean doInBackground(Void... params) { 


    Boolean result = false; 

    Workbook book = new Workbook(); 
    Worksheet sheet = book.getWorksheets().get(0); 
    Cells cells = sheet.getCells(); 
    Cell cell = cells.get("A1"); 
    Cell cell1 = cells.get("A2"); 
    Cell cell2 = cells.get("A3"); 

    cell.putValue(text); 
    cell1.setValue(true); 
    cell2.setValue(123); 

    try { 
     book.save(sdPath + "/output.xlsx"); 
// 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return result; 
} 
} 

ответ

0

@Krukiou, Аналогичный запрос твой уже ответил в Aspose. Форум поддержки Cells. Для получения дополнительной информации см. Следующий фрагмент кода, а также this.

Что касается следующего фрагмента, он использует переменную mCellValue для загрузки содержимого поля EditText на клавише Enter. Вы можете использовать одну и ту же переменную, чтобы вставить содержимое поля EditText в ячейку электронной таблицы с помощью кнопки пользовательского интерфейса mButton. Кроме того, по умолчанию EditText может охватывать несколько строк, поэтому клавиша Enter на реальном устройстве (или мягкой клавиатуре) будет действовать как возврат каретки, поэтому код устанавливает EditText.SingleLine как истинный, чтобы изменить поведение мягкая клавиша Enter.

private TextView mResultTextView; 
private TextView mProgressTextView; 
private Button mButton; 
private EditText mEditText; 
private String mCellValue; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
LibsLoadHelper.loadLibs(getApplicationContext()); 

mResultTextView = (TextView)findViewById(R.id.result_textview); 
mProgressTextView = (TextView)findViewById(R.id.progress_textview); 
mButton = (Button)findViewById(R.id.button); 
mEditText = (EditText)findViewById(R.id.edit_text); 
mEditText.setSingleLine(true); 

mEditText.setOnKeyListener(new EditText.OnKeyListener() 
{ 
    @Override 
    public boolean onKey(View view, int keyCode, KeyEvent keyEvent) { 

     if(KeyEvent.KEYCODE_ENTER == keyCode) 
     { 
      if(KeyEvent.ACTION_UP == keyEvent.getAction()) 
      { 
       EditText editText = (EditText)view; 
       mCellValue = editText.getText().toString(); 
       Toast.makeText(MainActivity.this, mCellValue, Toast.LENGTH_SHORT).show(); 
      } 
      return true; 
     } 
     return false; 
    } 
}); 
mButton.setOnClickListener(new Button.OnClickListener() 
{ 
    @Override 
    public void onClick(View v) { 
     new TestTask().execute(); 

    } 
}); 

Примечание: Я работаю с Aspose, как евангелист Developer.

+0

Привет, добавив EditText.SingleLine (true), код работает. Спасибо вам за помощь. – Krukiou