高分求助!如何把Mysql数据表导出成excel文档

高分求助!如何把Mysql数据表导出成excel文档,第1张

方法一:进入到mysql的控制台,输入:

SELECT * INTO OUTFILE ‘./test.xls‘ FROM tb1 WHERE 1 ORDER BY id DESC LIMIT 0, 50

这样,应该会在你的mysql的var/目录下产生一个test.xls的文件。。。

但是如果你的shell的登录帐户和mysql的运行账户不同,很可能这个方法就不适用了,因为你可以通过mysql控制台来产生这个文件,但是你却没有办法通过shell来对这个文件进行 *** 作,因为用户不同,没有访问权限。

这个时候,同事告诉偶滴办法就重装登录了!!!

echo "SELECT * FROM tb1 WHERE 1 ORDER BY id DESC LIMIT 0, 50"| /usr/local/mysql/bin/mysql -hlocalhost -uroot -pxxxxx >/tmp/test.xls

ok,把你的test.xls文件从tmp下载到本地打开来看看吧。。。

什么?中文乱码?

别着急。。。

因为office默认的是gb2312编码,服务器端生成的很有可能是utf-8编码,这个时候你有两种选择,

1.在服务器端使用iconv来进行编码转换,

iconv -futf8 -tgb2312 -otest2.xls test.xls

如果转换顺利,那么从server上下载下来就可以使用了。

转换如果不顺利,则会提示:iconv: illegal input sequence at position 1841 类似于这样的错误,

先把test.xls下载下来,这个时候文件是utf-8编码的,用excel打开,乱码。

把test.xls以文本方式打开,然后另存为,在编码选择ANSI编码,保存。

ok,再用excel打开,乱码问题,烟消云散。。。

mysql表里面搞个longblob字段保存word

代码:

1)上传

try {

Class.forName("com.mysql.jdbc.Driver").newInstance()

String url ="jdbc:mysql://localhost/test?user=root&password=root&useUnicode=true&characterEncoding=gbk"

Connection conn = DriverManager.getConnection(url)

Statement stmt = conn.createStatement()

stmt.execute("insert into test(myid) values (5)")

stmt.close()

PreparedStatement pstmt = null

String sql = ""

File file = new File("c:\\kick.jpg")

InputStream photoStream = new FileInputStream(file)

sql = " UPDATE test SET photo = ? WHERE myid = 5"

pstmt = conn.prepareStatement(sql)

pstmt.setBinaryStream(1, photoStream, (int)file.length())

pstmt.executeUpdate()

pstmt.close()

conn.close()

} catch (Exception e) {

e.printStackTrace()

}

2)下载:

PreparedStatement pst = ..... //省略获取Connection及查询的sql

ResultSet rs = pst.executeQuery()

InputStream is = rs.getBinaryStream(1)//1表示你的word字段在结果集中的索引号

FileOutputStream fos = new FileOutputStream("path")

byte [] buf = new byte[1024]

while(is.read(buf)!=-1){

fos.write(buf)

}

//close省略

大概思路,自己完善


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8420483.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存