我使用jexcelapi for android。
我写下了字符串"Hello jExcelAPI!",但当我阅读时,我看到了中文符号。
我怎么才能修复它?
提前谢谢。
附言:也许它有帮助:我不知道在ws.setCharacterSet(Cs)中需要给出什么;

package ru.elvigl.hello;
import java.io.File;
import java.io.IOException;
import java.util.Locale;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class HellojExcelAPIActivity extends Activity {
final File file = new File("/sdcard/Folder/File.xls");
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void btnExport_Click(View v) throws IOException, RowsExceededException, WriteException {
WorkbookSettings ws = new WorkbookSettings();
//ws.setCharacterSet(cs);
ws.setEncoding("Cp1251");
ws.setExcelDisplayLanguage("RU");
ws.setExcelRegionalSettings("RU");
ws.setLocale(new Locale("ru", "RU"));
WritableWorkbook workbook = Workbook.createWorkbook(file, ws);
WritableSheet sheet = workbook.createSheet("First Sheet", 0);
Label label = new Label(0, 0, "Hello jExcelAPI!");
sheet.addCell(label);
workbook.write();
workbook.close();
}
public void btnImport_Click(View v) throws BiffException, IOException {
WorkbookSettings ws = new WorkbookSettings();
//ws.setCharacterSet(cs);
ws.setEncoding("Cp1251");
ws.setExcelDisplayLanguage("RU");
ws.setExcelRegionalSettings("RU");
ws.setLocale(new Locale("ru", "RU"));
Workbook workbook = Workbook.getWorkbook(file, ws);
Sheet sheet = workbook.getSheet(0);
Cell a1 = sheet.getCell(0,0);
String str = a1.getContents();
TextView tv = (TextView) findViewById(R.id.tvCellValue);
tv.setText(str);
}
}发布于 2011-12-08 09:00:43
下面是“WorkbookSettings”类的文档:http://jexcelapi.sourceforge.net/resources/javadocs/2_6_10/docs/jxl/WorkbookSettings.html方法"setCharacterSet“似乎只用于读取(导入)电子表格,如果有帮助,不会导出。至于中文字符,我认为是由于您的地区而显示的。我将使用这些常量通过适当的语言和国家/地区构造函数参数正确地实例化您的语言环境对象:http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Locale.html
发布于 2011-12-09 05:23:55
我不知道该怎么办:
new java.util.Local(Locale.ENGLISH)是不正确的构造函数。
我使用jdk-6u29,现在我使用jdk-7u1。
在Eclipse中,我使用:
我在安卓和PC上创建了相同的应用程序,其中我使用的是jexcel_android.jar
关于Hello这个词
在PC byte[] b = a1.getString().getBytes("UTF-8");上
在安卓byte[] b = a1.getString().getBytes("UTF-8");上
如果在十六进制查看器上打开创建的文件

PC代码如下:
package ru.elvigl.jexcelwin;
import java.io.File;
import java.io.IOException;
import jxl.LabelCell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
public class MainClass {
final static File file = new File("D:/File.xls");
public static void main(String[] args)
throws RowsExceededException, WriteException, IOException, BiffException {
writeFile();
readFile();
}
private static void writeFile()
throws RowsExceededException, WriteException, IOException{
WritableWorkbook workbook = Workbook.createWorkbook(file);
WritableSheet sheet = workbook.createSheet("First Sheet", 0);
Label label = new Label(0, 0, "Hello");
sheet.addCell(label);
workbook.write();
workbook.close();
System.out.println("File created");
}
private static void readFile()
throws BiffException, IOException{
Workbook workbook = Workbook.getWorkbook(file);
Sheet sheet = workbook.getSheet(0);
LabelCell a1 = (LabelCell) sheet.getCell(0,0);
byte[] b = a1.getString().getBytes("UTF-8");
System.out.println(str);
}
}Android代码如下:
package ru.elvigl.hello;
import java.io.File;
import java.io.IOException;
import jxl.LabelCell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
public class HellojExcelAPIActivity extends Activity {
final File file = new File("/sdcard/Folder/File.xls");
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void btnExport_Click(View v) throws IOException, RowsExceededException, WriteException {
WritableWorkbook workbook = Workbook.createWorkbook(file);
WritableSheet sheet = workbook.createSheet("First Sheet", 0);
Label label = new Label(0, 0, "Hello");
sheet.addCell(label);
workbook.write();
workbook.close();
}
public void btnImport_Click(View v) throws BiffException, IOException {
Workbook workbook = Workbook.getWorkbook(file);
Sheet sheet = workbook.getSheet(0);
LabelCell a1 = (LabelCell) sheet.getCell(0,0);
byte[] b = a1.getString().getBytes("UTF-8");
}
}https://stackoverflow.com/questions/8424607
复制相似问题