java excel提取器的问题

java excel提取器的问题,java,excel,csv,Java,Excel,Csv,我编写了一些代码从xls中提取数据并将其保存到csv中。一切都很好,除了当我有时间价值,它是改变它的日期。我怎样才能避免呢? 例如,如果xls文件中的时间为119:22:00,则该时间将以1/4/1900 23:23的格式保存到csv文件中,格式类型为日期。如何将格式保持为字符串 代码如下: if (sheet != null) { for (currentRow = 0; currentRow < sheet.getRows(); currentRow++) {

我编写了一些代码从xls中提取数据并将其保存到csv中。一切都很好,除了当我有时间价值,它是改变它的日期。我怎样才能避免呢? 例如,如果xls文件中的时间为119:22:00,则该时间将以1/4/1900 23:23的格式保存到csv文件中,格式类型为日期。如何将格式保持为字符串

代码如下:

if (sheet != null)
{
    for (currentRow = 0; currentRow < sheet.getRows(); currentRow++)
    {
        row = new ArrayList<String>();
        Cell[] rowCells = sheet.getRow(currentRow);
        for (Cell cell : rowCells)
        {
            System.out.println(cell.getContents());
        }
    }
}
if(工作表!=null)
{
对于(currentRow=0;currentRow
您需要获取Excel.Cell.Text而不是Excel.Cell.Value才能查看格式化的值。很明显,你提取的是价值。根据您的代码,问题似乎出现在
cell.getContents()
sheet.getRow()
-用于从excel中提取数据的位置。你也应该发布这些函数的内容

Excel中日期和时间的基本值很难处理,对于原始格式的新手来说毫无意义。只需打开Excel工作表并将格式临时更改为
number
,您就可以看到Excel将日期和时间转换为的基本值。您将看到,只要您键入日期或时间,它就会将其转换为对用户来说毫无意义的日期或时间的数字表示形式,因此,如果您提取基础值而不是格式化文本,则对您来说毫无意义


您需要获取Excel.Cell.Text而不是Excel.Cell.Value来查看格式化的值。很明显,你提取的是价值。根据您的代码,问题似乎出现在
cell.getContents()
sheet.getRow()
-用于从excel中提取数据的位置。你也应该发布这些函数的内容

Excel中日期和时间的基本值很难处理,对于原始格式的新手来说毫无意义。只需打开Excel工作表并将格式临时更改为
number
,您就可以看到Excel将日期和时间转换为的基本值。您将看到,只要您键入日期或时间,它就会将其转换为对用户来说毫无意义的日期或时间的数字表示形式,因此,如果您提取基础值而不是格式化文本,则对您来说毫无意义


您必须向我们展示您的代码,我们才能为您提供帮助。您必须向我们展示您的代码,我们才能为您提供帮助。我尝试了jxl和apache的poi,在这两种情况下,当单元格的类型为number或date时,我都无法提取字符串值。我得到了演员特例。即使单元格中包含数字/日期等,您知道如何始终使用字符串值吗?在您发布代码之前,我无法帮助您。另外,请告诉我您使用的是什么API。我向您保证,世界上没有一个excelapi不能让您获得单元格文本而不是单元格值。看起来您要做的是在单元格上调用“ToString()”,这不是您应该做的。我尝试了jxl和apache的poi,在这两种情况下,当单元格的类型为number或date时,我都无法提取字符串值。我得到了演员特例。即使单元格中包含数字/日期等,您知道如何始终使用字符串值吗?在您发布代码之前,我无法帮助您。另外,请告诉我您使用的是什么API。我向您保证,世界上没有一个excelapi不能让您获得单元格文本而不是单元格值。看起来您要做的是在单元格上调用“ToString()”,而这不是您应该做的。