无法使用aspose.cell for android

时间:2016-09-29 16:34:32

标签: android excel aspose

我在android中使用Edittext通过使用aspose-cell for android API来填充xls.file的单元格。但是当我在edittext中放入一些文本时,xls中显示的值。文件总是一样的:2131492965 !!而不是edittext的文本。

你能帮助我吗?

这是我的代码:

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;
}
}

1 个答案:

答案 0 :(得分:0)

@Krukiou, 您在Aspose.Cells支持论坛上已经回复了类似的询问。有关详细信息,请查看以下代码段和this主题。

关于以下代码段,它使用mCellValue变量在Enter键上加载EditText字段的内容。您可以使用相同的变量使用UI按钮mButton将EditText字段的内容插入电子表格单元格。此外,默认情况下,EditText可以跨越多行,因此真实设备(或软键盘)上的Enter键将作为回车符,因此代码将EditText.SingleLine设置为true,以便更改其行为。软键回车键。

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作为开发者布道者。