第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

XSSFCell -> 如何從 long 中獲取間隔時(shí)間值

XSSFCell -> 如何從 long 中獲取間隔時(shí)間值

白衣非少年 2023-12-21 10:40:59
我得到一個(gè)長值,例如:44304000。該值表示時(shí)間間隔。如果我們將此值轉(zhuǎn)換為小時(shí)和分鐘,我們會(huì)得到:12:18。我的問題在這里:當(dāng)我想查看我的時(shí)間間隔值時(shí),如何將單元格值添加到 XSSFCell 中?(不是文本)時(shí)間 - 可以通過 Excel 計(jì)算,文本 - 不能!謝謝幫助:)
查看完整描述

1 回答

?
繁華開滿天機(jī)

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊

我懷疑你的時(shí)間間隔 44304000 是一個(gè)時(shí)間差,單位是毫秒。

Excel日期時(shí)間中,值存儲(chǔ)為以double天為測量單位的浮點(diǎn) ( ) 值。第 0 天 = 1900 年 1 月 1 日 00:00:00.000。因此,Excel日期時(shí)間值 1.0 表示一天。一小時(shí)是 1/24。一分鐘是 1/24/60。一秒是 1/24/60/60。一毫秒是 1/24/60/60/1000。

知道了這一點(diǎn),你就可以計(jì)算

double excelTimeIntervalInDays = timeIntervalInMillis/24d/60d/60d/1000d;

可以將其double excelTimeIntervalInDays設(shè)置為 中的單元格值Excel。

另外,必須在單元格的單元格樣式中設(shè)置適當(dāng)?shù)臄?shù)字格式(日期格式),以便該double值將顯示為時(shí)間。數(shù)字格式[hh]:mm:ss.000表示:顯示兩位數(shù)小時(shí),即使超過 24(括號(hào)設(shè)置)。然后顯示:. 然后顯示兩位數(shù)分鐘。然后顯示:. 然后顯示兩位數(shù)秒。然后顯示.. 然后顯示三位數(shù)毫秒。

完整示例:

import java.io.FileOutputStream;

import org.apache.poi.ss.usermodel.*;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;


class CreateExcelDateTimeFromLong {


 public static void main(String[] args) throws Exception {


  try (Workbook workbook = new XSSFWorkbook(); 

       FileOutputStream fileout = new FileOutputStream("Excel.xlsx") ) {


   long[] timeIntervalsInMillis = new long[] {

    44304000, //12:18:24.000 = 12h, 18m, 24s

    20*60*60*1000+15*60*1000+10*1000, //20:15:10.000 = 20h, 15m, 10s

    25*60*60*1000+25*60*1000+15*1000, //25:25:15.000 = 25h, 25m, 15s = 1d, 1h, 25m, 15s

    48*60*60*1000+45*60*1000+55*1000, //48:45:55.000 = 48h, 45m, 55s = 2d, 0h, 45m, 55s

   };


   CellStyle timeIntervalStyle = workbook.createCellStyle();

   DataFormat format = workbook.createDataFormat();

   timeIntervalStyle.setDataFormat(format.getFormat("[hh]:mm:ss.000"));


   Sheet sheet = workbook.createSheet();

   Row row = sheet.createRow(0);

   Cell cell = row.createCell(0);

   cell.setCellValue("Time intervals");


   int r = 1;

   for (long timeIntervalInMillis : timeIntervalsInMillis) {

    row = sheet.createRow(r++);

    cell = row.createCell(0);


    double excelTimeIntervalInDays = timeIntervalInMillis/24d/60d/60d/1000d;


    cell.setCellValue(excelTimeIntervalInDays);

    cell.setCellStyle(timeIntervalStyle);

   }


   sheet.setColumnWidth(0,15*256);


   workbook.write(fileout);

  }


 }

}

注意:這假設(shè)它們timeIntervalsInMillis是指兩個(gè)日期之間的差異(以毫秒為單位)。不要將其與以毫秒為單位的時(shí)間戳混淆。如果給出時(shí)間戳,則需要一種完全不同的方法,因?yàn)楸仨毧紤]這些時(shí)間戳的紀(jì)元。然后首先必須根據(jù)該時(shí)間戳創(chuàng)建日期,并且這些日期必須設(shè)置為 中的單元格值Excel。


查看完整回答
反對(duì) 回復(fù) 2023-12-21
  • 1 回答
  • 0 關(guān)注
  • 170 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)