标签: apache-poi

如何将Excel单元格中的数字字符串作为字符串(而非数字)读取?

  1. 我有这样的内容的excel文件:

    • A1:SomeString

    • A2:2

    所有字段都设置为String格式.

  2. 当我使用POI在java中读取文件时,它告诉A2是数字单元格格式.

  3. 问题是A2中的值可以是2或2.0(我希望能够区分它们)所以我不能只使用它.toString().

如何将值读取为字符串?

java excel apache-poi

137
推荐指数
7
解决办法
23万
查看次数

无法在Apache POI中导入XSSF

我正在引用Apache POI的3.7版本,当我这样做时,我收到了"无法解决"的错误:

import org.apache.poi.xssf.usermodel.XSSFWorkbook;
Run Code Online (Sandbox Code Playgroud)

引用POI的其他import语句不会给我错误,例如:

import org.apache.poi.ss.usermodel.*;
Run Code Online (Sandbox Code Playgroud)

有任何想法吗??

java apache-poi

113
推荐指数
6
解决办法
17万
查看次数

POI - 如何将单元格值设置为日期并应用默认Excel日期格式?

我已经使用Apache POI一段时间以编程方式读取现有的Excel 2003文件.现在我有了一个新的要求,即在内存中创建整个.xls文件(仍使用Apache POI),然后将它们写入文件末尾.阻碍我的唯一问题是处理带日期的细胞.

请考虑以下代码:

Date myDate = new Date();
HSSFCell myCell;
// code that assigns a cell from an HSSFSheet to 'myCell' would go here...
myCell.setCellValue(myDate);
Run Code Online (Sandbox Code Playgroud)

当我将包含此单元格的工作簿写入文件并使用Excel打开时,单元格显示为数字.是的,我确实认识到Excel将其"日期"存储为自1900年1月1日以来的天数,这就是单元格中的数字所代表的数字.

问题:我可以在POI中使用哪些API调用来告诉它我需要将默认日期格式应用于我的日期单元格?

理想情况下,如果用户在Excel中手动打开电子表格并键入Excel识别为日期的单元格值,我希望电子表格单元格显示的Excel默认日期格式与Excel分配的格式相同.

java date apache-poi

93
推荐指数
4
解决办法
16万
查看次数

在Java中读取Excel工作表的最佳API是什么 - JXL或Apache POI

哪两个API更易于读/写/编辑Excel工作表?这些API不支持CSV扩展吗?

使用JXL for file.xls和file.xlsx,我得到一个例外:

jxl.read.biff.BiffException: Unable to recognize OLE stream
    at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
    at jxl.read.biff.File.<init>(File.java:127)
    at jxl.Workbook.getWorkbook(Workbook.java:268)
    at core.ReadXLSheet.contentReading(ReadXLSheet.java:46)
    at core.ReadXLSheet.init(ReadXLSheet.java:22)
    at core.ReadXLSheet.main(ReadXLSheet.java:72)
Run Code Online (Sandbox Code Playgroud)

两者都用于.xls和.xlsx扩展.我使用的Java版本是:JDK1.6

java excel jxl apache-poi

92
推荐指数
3
解决办法
12万
查看次数

Apache POI Excel - 如何配置要扩展的列?

Apache POI API用来生成excel spreadsheet输出一些数据.

我面临的问题是,在创建和打开电子表格时,不会扩展列,以便乍一看不会出现像Date格式化文本这样的长文本.

我可以双击excel中的列边框来展开或拖动边框来调整列宽,但可能有20多列,每次打开电子表格时我都无法手动执行此操作:(

我发现了(虽然可能是错误的方法)groupRow()并且setColumnGroupCollapsed()可能能够做到这一点,但没有运气.也许我错误地使用它.

示例代码段

        Workbook wb = new HSSFWorkbook();
        CreationHelper createHelper = wb.getCreationHelper();
        //create sheet
        Sheet sheet = wb.createSheet("masatoSheet");

        //not really working yet.... :(
        //set group for expand/collapse
        //sheet.groupRow(0, 10); //just random fromRow toRow argument values...
        //sheet.setColumnGroupCollapsed(0, true);

        //create row
        Row row = sheet.createRow((short)0);
        //put a cell in the row and store long text data
        row.createCell(0).setCellValue("Loooooooong text not to show up first");
Run Code Online (Sandbox Code Playgroud)

创建此电子表格时,"Looooooong text not to first up …

java excel expand apache-poi

88
推荐指数
7
解决办法
18万
查看次数

Apache POI锁定标题行

有没有人熟悉在Apache POI 3.7创建的电子表格中锁定行的方法?通过锁定,我的意思是当用户滚动行时,我希望列的标题行保持可见.我创建的电子表格将有500行,如果列的名称始终可见,将会很有用.

java apache-poi

70
推荐指数
2
解决办法
4万
查看次数

使用Apache POI在Excel中合并单元格

有没有其他方法可以使用Apache POI库在Excel中合并单元格?

我正在尝试使用以下内容,但它不起作用

// selecting the region in Worksheet for merging data
CellRangeAddress region = CellRangeAddress.valueOf("A" + rowNo + ":D"
            + rowNo);

// merging the region
sheet1.addMergedRegion(region);
Run Code Online (Sandbox Code Playgroud)

java excel android apache-poi

58
推荐指数
4
解决办法
13万
查看次数

如何读取具有Apache POI日期的Excel单元格?

我正在使用Apache POI 3.6,我想阅读一个excel文件,其中包含这样的日期8/23/1991.

 switch (cell.getCellType()) {

   ...
   ...

   case HSSFCell.CELL_TYPE_NUMERIC:
     value = "NUMERIC value=" + cell.getNumericCellValue();
     break;

   ...

 }
Run Code Online (Sandbox Code Playgroud)

但它采用数值类型并返回这样的值33473.0.

我试过使用数字细胞类型虽然没有运气.

dbltemp=row.getCell(c, Row.CREATE_NULL_AS_BLANK).getNumericCellValue();

if (c == 6 || c == 9) {
    strTemp= new String(dbltemp.toString().trim());

    long tempDate = Long.parseLong(strTemp);
    Date date = new Date(tempDate);

    strVal = date.toString();
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决我的问题?

java apache excel apache-poi

57
推荐指数
3
解决办法
12万
查看次数

无法从数字单元格"Poi"获取文本值

我正在尝试使用Excel中的电子表格中的数据,但总是出现此错误,已尝试将工作表格式化为文本和数字,但错误仍然存​​在.

我看到一个人使用它解决cell.setCellType ( Cell.CELL_TYPE_STRING ) ;但我不知道我的代码在哪里适合这段.

WebElement searchbox = driver.findElement(By.name("j_username"));
WebElement searchbox2 = driver.findElement(By.name("j_password"));         

try {
    FileInputStream file = new FileInputStream(new File("C:\\paulo.xls")); 
    HSSFWorkbook workbook = new HSSFWorkbook(file);
    HSSFSheet sheet = workbook.getSheetAt(0);

    for (int i=1; i <= sheet.getLastRowNum(); i++){
        String j_username = sheet.getRow(i).getCell(0).getStringCellValue();
        String j_password = sheet.getRow(i).getCell(0).getStringCellValue();

        searchbox.sendKeys(j_username);
        searchbox2.sendKeys(j_password);
        searchbox.submit();  

        driver.manage().timeouts().implicitlyWait(10000, TimeUnit.MILLISECONDS);
    }

    workbook.close();
    file.close();
} catch (FileNotFoundException fnfe) {
    fnfe.printStackTrace();
} catch (IOException ioe) {
    ioe.printStackTrace();
Run Code Online (Sandbox Code Playgroud)

java apache-poi

57
推荐指数
5
解决办法
11万
查看次数

在Apache POI中设置列宽

我正在使用Apache POI API编写一个Java工具,将XML转换为MS Excel.在我的XML输入中,我以磅为单位接收列宽.但Apache POI API有一个稍微奇怪的逻辑,用于根据字体大小等设置列宽(请参阅API文档)

是否存在将点转换为Excel预期宽度的公式?有没有人这样做过?

setRowHeightInPoints()虽然有一种方法:(但没有列.

PS:输入XML是ExcelML格式,我必须转换为MS Excel.

excel apache-poi

55
推荐指数
3
解决办法
10万
查看次数

标签 统计

apache-poi ×10

java ×9

excel ×6

android ×1

apache ×1

date ×1

expand ×1

jxl ×1