2016-09-29 2 views
0

android API에 aspose-cell을 사용하여 xls.file의 셀을 채우기 위해 android의 Edittext를 사용합니다. 하지만 편집 텍스트에 텍스트를 넣으면 xls에 표시된 값이 표시됩니다. 파일은 항상 동일합니다 : 2131492965 !! edittext의 텍스트가 아닙니다.android에 aspose.cell을 사용하여 xls 파일에 텍스트 값을 입력 할 수 없습니다.

도와 주시겠습니까?

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에서 응답되었습니다

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

MainActivity.java :

여기 내 코드입니다. 셀은 포럼을 지원합니다. 자세한 내용은 다음 코드 부분과 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 as Developer Evangelist에서 작업합니다.

+0

안녕하세요, EditText.SingleLine (true)을 추가하면 코드가 작동합니다. 도와 줘서 고마워. – Krukiou