我想要获取与列名相关的列值,如在policy no string中获取TXT_Policy_no等,因为excel工作表的值可以满足要求,所以我想要读取基于列名的值,以更加安全。
我的java代码:
for (int i = 0; i < listofexcel.length; i++)
{
if (listofexcel[i].isFile())
{
//System.out.println("File " + listOfCsv[i].getName());
Csv_list.add(listofexcel[i].getName());
} else if (listofexcel[i].isDirectory())
{
System.out.println("Directory " + listofexcel[i].getName());
}
}
Iterator itr = Csv_list.iterator();
while(itr.hasNext())
{
String CsvName = (String) itr.next();
System.out.println(CsvName);
ProcessMain worker = new ProcessMain(CsvName);
// Runnable worker = new UploadFiles(CsvName);
// System.out.println("^^^^^^^");
String csvpath= GlobalVariable.getCsv_path()+CsvName;
WFLogger.printOut(csvpath);
first(csvpath);
final File f2 = new File(csvpath);
if(f2.exists())
{
f2.delete();
}
//executor.execute(worker);
}
}
catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//Returns the Headings used inside the excel sheet
public void getHeadingFromXlsFile(Sheet sheet) {
int columnCount = sheet.getColumns();
for (int i = 0; i < columnCount; i++) {
System.out.println(sheet.getCell(i, 0).getContents());
}
}
private void first(String csvName) {
// TODO Auto-generated method stub
FileInputStream fs = null;
try {
fs = new FileInputStream(new File(csvName));
contentReading(fs);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
fs.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
private void contentReading(FileInputStream fs) throws ClassNotFoundException, BiffException {
// TODO Auto-generated method stub
WorkbookSettings ws = null;
Workbook workbook = null;
Sheet s = null;
jxl.Cell[] rowData=null;
int rowCount = '0';
int columnCount = '0';
DateCell dc = null;
int totalSheet = 0;
ws = new WorkbookSettings();
ws.setLocale(new Locale("en", "EN"));
workbook = Workbook.getWorkbook(fs, ws);
totalSheet = workbook.getNumberOfSheets();
if(totalSheet > 0) {
System.out.println("Total Sheet Found:" + totalSheet);
String sheetName="";
for(int jj=0;jj<totalSheet ;jj++) {
sheetName=workbook.getSheet(jj).getName();
System.out.println("Sheet Name:" + sheetName);
s = workbook.getSheet(jj);
//Reading Individual Cell
//getHeadingFromXlsFile(s);
System.out.println("Total Rows inside Sheet:" + s.getRows());
rowCount = s.getRows();
System.out.println("Total Column inside Sheet:" + s.getColumns());
columnCount = s.getColumns();
//Reading Individual Row Content
for (int i = 1; i < rowCount; i++) {
//Get Individual Row
rowData = s.getRow(i);
if (rowData[0].getContents().length() != 0) {
int j=0;
String Claimno="";
String Product="";
String Mobileno="";
String Omniflag="N";
String Policyno="";
String Customername="";
String Certno="";
String Department="";
String lossdate="";
String Srno="";
for ( j = 0; j < columnCount; j++) {
try{
switch (j) {
case 0:
Srno= rowData[j].getContents();
break;
case 1:
Policyno=rowData[j].getContents();
break;
case 2:
Certno=rowData[j].getContents();
break;
case 3:
lossdate= rowData[j].getContents();
break;
case 4:
Department=rowData[j].getContents();
break;
case 5:
Product=rowData[j].getContents();
break;
case 6:
Claimno= rowData[j].getContents();
break;
case 7:
Customername=rowData[j].getContents();
break;
default:
break;
}
}catch (Exception e) {
System.out.print(e);
}
}
我假设我们知道哪一行包含标题。然后我们可以遍历它的单元格并检查它们的值以收集关于列的信息。就像
int headerRow = sheet.getRow(n);
Map<String, Integer> columnIndexes = new HashMap();
for ( j = 0; j < columnCount; j++) {
switch (rowData[j].getContents()) {
case "TXT_Policy_no":
columnIndexes.put("TXT_Policy_no", j); break;
...
case "CLAIMNO":
columnIndexes.put("CLAIMNO", j); break;
}
}
填满地图后,您可以访问像这样的单元格
int columnIndex = columnIndexes.get("CLAIMNO")
var cell = row.getCell(columnIndex);
我想从excel表格中读取一组用户名和密码。我的用户名出现在第一列,但我的密码值出现在第8列。我不想通过给出第8列地址来读取第8列的值。相反,我想在excel工作表中的任何地方读取密码值。有什么办法可以做到这一点吗? FileInputStream fs=new FileInputStream(strReadFile); 工作簿wb=Workbook.getWorkbook fs; 工作簿sh=w
问题内容: 这是用于提供行和列ID时提供COLUMN名称的代码,但是当我提供like值时,它应该返回,但返回 我在做什么错了? (此代码是EXCEL列的参考,在这里我提供了Row,Column ID值,并期望相同的ALPHABETIC值。) 问题答案: 编辑:我认为我必须承认,正如其他一些人(他们从未留下过我的评论)所指出的那样,我的答案的上一版本(您接受了)存在一个错误,该错误使其无法正确处理大
在R中,当需要根据可以执行的列名称检索列索引时 有没有一种方法可以对熊猫数据帧执行相同的操作?
问题内容: 我想知道如何从gridview获取列名?按其编号而不按名称。例如:姓名|年龄|生日:(所以姓名= 0,年龄= 1等) 谢谢。 问题答案: 您可以这样获得它: 或像这样: Rows [0]应该是您的标题行。
问题内容: 在R中,当您需要根据列名检索列索引时,可以执行此操作 有没有办法对熊猫数据框做同样的事情? 问题答案: 当然可以使用: 虽然老实说,我自己通常不需要这个。通常,通过名称进行访问可以实现我想要的功能(,或也许),尽管我可以肯定地看到一些情况下需要索引号的情况。
我有一个物品清单。每个对象都有一个级别属性(int 1、2或3)、一个城市属性(“New York”、“Milan”、“London”)和泛型字符串FamilyID。列表中对象的数量是随机的。我需要创建一个子列表(或任何其他集合/数据结构),它是由列表中的第一个对象组成的,具有级别和城市的任意组合(我不关心FamilyID)。 希望用一个例子让我的要求更清楚: 输出集合是具有(level,City