데이터를 쉼표로 구분 된 값의 문자열 ('\ n'을 사용하여 각 행 종료)로 수집하고 전자 메일로 한 달에 한 번 데이터를 나에게 보냅니다.쉼표로 구분 된 값 (csv)의 문자열을 Quickoffice 또는 Google 문서로로드
내 베타 테스터 중 한 명이 업로드 사이의 중간 데이터를보고 싶다고 알려 왔습니다. 이것을 (내 마음에) 자연스럽게하는 방법은 QuickOffice 또는 Google doc의 뷰어와 같은 "Excel과 같은"앱에 데이터를로드하는 것입니다. String을 파일에 쓰고 QuickOffice에로드하려고했습니다. QuickOffice를 시작할 수는 있지만 파일이 비어 있습니다. 또한 SD 카드에서 파일을 찾을 때 찾을 수 없습니다.
내 코드 :
File root = Environment.getExternalStorageDirectory();
try
{
BufferedWriter out = new BufferedWriter(new FileWriter(root.toString() + "/ww.csv"));
out.write(getPreferences(MODE_PRIVATE).getString("allTrips", ""));
out.flush(); // Probably not necessary
out.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
Intent i1 = new Intent(android.content.Intent.ACTION_VIEW);
Uri data = Uri.fromFile(new File(root.toString() + "/ww.csv"));
i1.setDataAndType(data, "application/vnd.ms-excel");
startActivity(i1);
날 내가 잘못 뭘하는지 알려 주시기 바랍니다. 위의 코드를 약간 개조 할 수있을뿐 아니라 완전히 다른 방식으로 작업을 완료 할 수 있습니다. 당신이하기 전에
, 내 매니페스트
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
을 추가 기억.
또한 SD 카드 대신 내 파일 시스템 (내 데이터는 작음)을 작성해 주지만 기꺼이 QuickOffice를 열 수는 있습니다.
데이터의 예 :
09/19/2011,AP2,Home,GW Parkway,12:03 PM,12:41 PM,38,Dry,Day
09/20/2011,Home,AP2,MacArthur Blvd,7:18 AM,8:32 AM,74,Rain,Day
09/20/2011,AP2,Home,Rock Creek Pkwy (Blagden),4:51 PM,5:45 PM,54,Dry,Day
09/21/2011,Home,AP2,Rte 295,6:44 AM,7:36 AM,52,Rain,Day
감사합니다.
UPDATE (2011 OCT 09) : 코드를 작성할 때
때때로, 당신은 다시 걸음을 당신이 달성하려고하는지 다시 생각해야합니다. 중간 데이터를 다시 형식화하고 사용자에게 읽기 쉬운 표를 만들어 월간 업로드 중간에 데이터를 볼 수 있기를 원합니다. 이 생각해 가장 쉬운 방법은 내 .csv 파일을 스프레드 시트에로드하는 것입니다. 외부 파일을 적절히 포맷했는지 확인하기 위해 외부 라이브러리를 사용하라는 Nikolay의 제안에 따라이 앱을 가능한 한 가만히 두려하지만 외부 라이브러리를 불필요하게 사용하는 것을 피하고 싶습니다. 그래서, 제 최종 솔루션은 HTML 형식을 사용하여 SD 카드에 약간 큰 파일을 작성한 다음 text/plain 또는 application/vnd.ms-excel이 아닌 text/html로 파일을 여는 것입니다. 코딩에 약 1 시간이 걸렸고 문제를 훌륭하게 해결 했으므로 문제를 해결할 것입니다.
따옴표가있는 각 셀에 CSV 파일을 저장하려고 했습니까? "09/19/2011", "AP2", "집", "GW Parkway", "12:03 PM", "12:41 PM", "38", "Dry", "Day" 문제를 해결할 수 있기를 바랍니다. – Richard
입력 해 주셔서 감사합니다. 나는 그것을 회상하지는 않지만 완전히 다른 방식으로 문제를 해결했습니다. 마지막 업데이트 (MAR 15 2012) 후 약 5 개월 후에 CSV 텍스트 파일 대신 SQLite 데이터베이스를 사용하도록 데이터 모델을 변경했습니다. CSV 파일 작업이 너무 느리기 때문에이 작업을 수행했습니다. 특히, 앱의 초기 설정 시간이 ** 분 **에서 눈에 띄지 않게되었습니다. 부작용은 SQLite 데이터베이스 파일을 보는 데 사용할 수있는 무료 App이 있기 때문에 더 이상 내 데이터 뷰어를 가질 필요가 없다는 것입니다. – Gdalya