日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java导出excel_如何导出你和女票的微信聊天记录

發布時間:2025/4/16 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java导出excel_如何导出你和女票的微信聊天记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

正文共:2497 字 16 圖

預計閱讀時間:7 分鐘

前言

? ? Sun和Star已經在一起將近兩年了。

????從兩年前的夏天高考結束兩個人加了微信,到現在,已經產生了不計其數的聊天記錄.......

? ? 就在某一天,當Star打算看一看之前的聊天記錄而因為聊天記錄太多微信崩潰的時候,他覺得,是時候把微信聊天記錄導出到電腦上了。

????更何況,這樣相當于有了一個備份,降低了這么多珍貴的聊天記錄丟失的風險~

????經過觀察,Star發現,不像QQ一樣可以方便的在應用內直接導出,微信的聊天記錄是無法導出成一些方便可視化查看的格式的。目前支持的功能,似乎只有在不同設備之間同步聊天記錄:

? ? 于是Star開始Google相關信息,發現在網上的大部分攻略都是針對IOS的......即使有針對安卓手機的教程,它們的年代都相對久遠,看起來不太靠譜。

????最終,Star定位了兩篇相對有用的攻略(鏈接放在文末)。最終目標是,把聊天記錄導出到excel中,其中包含消息發送時間,發送人以及聊天具體文字內容。

1.提取原始數據庫

一般來講,在使用安卓文件系統的手機里(Star的手機是小米),微信聊天記錄應當存儲在:

根目錄/data/data/com.tencent.mm/MicroMsg

之中,如下圖:

一般加密的數據庫文件在兩個長名字文件夾之一,需要自己尋找,于是Star查看了一下兩個文件夾的大小:

????顯然聊天記錄在后面的文件夾里......打開文件夾,會找到EnMicroMsg.db這個文件,這是一個數據庫文件,但是它沒法直接打開,因為它是加密的。

2.獲取數據庫密碼

????那么怎么得到密碼呢?目前各種資料得出的密碼獲取方式是 的MD5碼前七位。也就是上圖中提到的第一種方法。

????我們可以手動去尋找這些信息來得到密碼,簡單來講就是:

????手機IMEI號:撥號界面輸入*#06#即可,(雙卡雙待手機兩個串號,需要自行嘗試)

????微信UIN號:這個號存儲在如下文件中:

/data/data/com.tencent.mm/shared_prefs/system_config_prefs.xml

打開文件,找到:

value的值就是微信的UIN號。

????但是!Star在Github上找到了現成的java代碼(連接在文末,需要相應環境才能運行)。

????將CompatibleInfo.cfg和systemInfo.cfg以及EnMicroMsg.db復制出來,然后和IMEI.java放到同一目錄下,運行代碼即可得到密碼:

3.打開并導出

????輸入密碼,打開數據庫(可以使用sqlcipher):

????這個軟件支持直接導出csv格式,File-Export-Table as CSV file,找到message導出即可:

4.處理數據

????到了這一步,Star本以為大功告成,但實際上還遠遠沒有QAQ。

????最主要的兩個問題:

??? 1.目前導出的數據是微信中的全部聊天記錄,而不僅僅是Sun和Star的聊天記錄。

??? 2.現在這個文件太大了,里面有很多我們不需要的信息,需要進一步處理。

????既然都導出csv文件了,那直接用excel處理不就好了?確實,Star一開始也是這么想的......然鵝,在打開這么大的一個文件的過程中,Star的電腦死機了......

????好吧,既然先打開瀏覽不可取,那就只能直接處理了,Star首先在攻略中看到了網上其他人打開這個csv文件后總結出的數據存儲規律:

????如圖可以看到,我們主要關注的是四個信息:

????1.isSend:0則為對方發的消息,1是自己發的消息

????2.createTime:10位UNIX時間戳,可以算法轉換為標準時間

????3.talker:這個是關鍵,你與某個聯系人的對話就為一個taker id,鎖定了它就鎖定了你與她的所有對話

????4.content:聊天文字內容

????好,那么我們的思路就很清晰了,只要找到對應的talker值,然后提取出來,然后再提取對應的四列數據就可以了!

????實際操作中,可以用matlab或者python的pandas、csv庫來實現對數據的直接處理。

????但是!Star在知乎上找到了一個讀數據神器——EmEditor!(emeditor.com)Emeditor具有專門針對大文件的優化,內置了大文件控制器,用它打開這個將近200MB的csv文件只需要幾秒鐘!

??? Star熱淚盈眶地打開了message文件,一眼就看到了他和Sun的第一段聊天記錄。

????那么現在的顯示方式是純文本顯示,我們可以按照逗號分隔來顯示表格(在上方工具欄“CSV/排序”中):

? ? 現在已經一目了然了,Emeditor內置了查找提取等操作,于是把“talker”對應的值為你想要的聯系人的行全部提取出來,導出到一個新的csv文件中,就可以啦!

????導出之后的文件果然小多了,可以成功地用excel打開:

????接下來,Star發現,時間顯示格式還是UNIX時間戳,非常不方便。還有,在聊天記錄中其實有很多內容是沒用的(比如紅包、表情包、圖片,在數據庫里都是按一串鏈接的格式存儲的)。

????要做的事情:把UNIX時間戳轉換成北京時間;把聊天記錄“content”一欄中真正包含文字的行提取出來。

????轉換時間:對應excel公式(B為存儲時間的欄):

=(B+8*3600)/86400+70*365+19

轉換之后,再調整單元格日期顯示格式為日期加時間就可以了。

????提取文字:對應excel條件(D為存儲內容的欄):

LENB(D)>LEN(D)

LENB對單元格內容計數時,會把漢字當成2字節來算,而LEN計數時,無論什么字符都按1字節來算。如果LENB的值大于LEN的值,就代表單元格內含有漢字。

????最后:導出效果是這樣的:

????基本已經成功了!接下來就可以對聊天記錄一通分析了hhhh......比如統計什么詞出現次數最多啊之類的。甚至還可以制作一個年度總結~

相關攻略:

https://zhuanlan.zhihu.com/p/28935173

https://github.com/Heyxk/notes

Excel時間戳轉換:

https://blog.csdn.net/u013347671/article/details/78062601

總結

以上是生活随笔為你收集整理的java导出excel_如何导出你和女票的微信聊天记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。