如何将mysql数据库中的结果导出并格式化为excel

avkwfej4  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(236)

我找不到任何关于如何将我的结果从mysql查询导出到excel的信息。结果中只有1个字段/行需要正确格式化。所以,这就是我正在使用的代码的结果,都在一个长的行中,带有分隔符。

[('number_of_journeys,distinct_ships,"GROUP_CONCAT(DISTINCT sj.ship_id SEPARATOR \';\')","GROUP_CONCAT(DISTINCT st.ship_type_name SEPARATOR \';\')"\n536,13,6713283;9155913;9219898;9253442;9277321;9282558;9292113;9437866;9515034;10008511;10008693;10017790;10027359,"GENERAL CARGO (Deck Cargo);HANDY BC;HANDYMAX BC;MGC LPG;MR2 TNKR;PANAMAX CONT;SINGLEDECKER (Open Hatch);SMALL CRUISE LUXURY;SMALL HANDY BC (Open Hatch / Self Disc)"\n',)]

现在,这与我直接从使用的数据库导出时不同,因为它的格式是:excel table format。这就是我想要导出的格式。

  • 注意:我已经能够实际导出到excel,但不是我想要的格式。我的输出放在excel的一个单元格中,而我需要用逗号分隔的值和换行符来拆分字段。

下面是我使用的代码,我只是省略了配置细节:

try:
  myConnection = mysql.connector.connect(**config)
except mysql.connector.Error as err:
  if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    print("Something is wrong with your user name or password")
  elif err.errno == errorcode.ER_BAD_DB_ERROR:
    print("Database does not exist")
  else:
    print(err)
else:
    cursor = myConnection.cursor(buffered=True)
    query = ("SELECT t.results FROM tbl_trade_health_checks_2021_04_26 t WHERE t.order = 2")
    cursor.execute(query)
    result = cursor.fetchall()
    print(result)
    wb = openpyxl.Workbook()
    ws = wb.active
    df = pd.read_sql(query, myConnection)
    print(df)
    df.to_excel('SqlTester.xlsx')
    cursor.close()
    myConnection.close()

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题