我正在尝试通过命令行将带有标题的PostgreSQL表导出到CSV文件,但是我将其导出到CSV文件但没有标题.我也需要那些标题.我的代码如下所示
COPY products_273 to '/tmp/products_199.csv' delimiters',';
Run Code Online (Sandbox Code Playgroud) 检查这个例子:
> a = matrix(1:9, nrow = 3, ncol = 3, dimnames = list(LETTERS[1:3], LETTERS[1:3]))
> a
A B C
A 1 4 7
B 2 5 8
C 3 6 9
Run Code Online (Sandbox Code Playgroud)
表格显示正确.将它写入文件有两种不同的方式...
write.csv(a, 'a.csv')
这给出了预期:
"","A","B","C"
"A",1,4,7
"B",2,5,8
"C",3,6,9
Run Code Online (Sandbox Code Playgroud)
而write.table(a, 'a.txt')
这螺丝了
"A" "B" "C"
"A" 1 4 7
"B" 2 5 8
"C" 3 6 9
Run Code Online (Sandbox Code Playgroud)
事实上,缺少一个空的标签....这对于下游事物来说是一种痛苦.这是一个错误还是一个功能?有解决方法吗?(除了write.table(cbind(rownames(a), a), 'a.txt', row.names=FALSE
)
干杯,yannick
我是一名新手程序员,我搜索了很多关于我的问题,但找不到有用的解决方案或教程.
我的目标是我有一个PHP数组,数组元素显示在页面上的列表中.
我想添加一个选项,以便在用户需要时,他/她可以创建一个包含数组元素的CSV文件并下载它.
我不知道该怎么做.我也搜索了很多.但尚未找到任何有用的资源.
请为我提供一些教程,解决方案或建议,以便我自己实施.由于我是新手,请提供易于实施的解决方案.
我的数组看起来像:
Array
(
[0] => Array
(
[fs_id] => 4c524d8abfc6ef3b201f489c
[name] => restaurant
[lat] => 40.702692
[lng] => -74.012869
[address] => new york
[postalCode] =>
[city] => NEW YORK
[state] => ny
[business_type] => BBQ Joint
[url] =>
)
)
Run Code Online (Sandbox Code Playgroud) 如果我们在nodeJS服务器上,我们可以编写一个头,设置一个mime类型,并发送它:
res.header("Content-Disposition", "attachment;filename="+name+".csv");
res.type("text/csv");
res.send(200, csvString);
Run Code Online (Sandbox Code Playgroud)
并且由于标题,浏览器将为命名的csv文件创建下载.
当在浏览器中生成有用的数据时,将其置于CSV文件中的一种解决方案是使用ajax,将其上传到服务器,(可选择将其保存在那里)并让服务器使用这些头将其发送回csv在浏览器下载回来.
但是,我希望100%的浏览器解决方案不涉及与服务器的乒乓.
所以在我看来,可以打开一个新窗口并尝试使用META标记等效设置标题.
但是这在最近的Chrome中对我不起作用.
我确实得到一个新窗口,它包含csvString,但不作为下载.
我想我希望在底部标签中下载或在底部标签中下载一个空白的新窗口.
我想知道元标记是否正确或是否还需要其他标记.
有没有办法让这项工作没有将其强加给服务器?
用于在浏览器中创建CSV的JsFiddle(不工作 - 输出窗口但无法下载)
var A = [['n','sqrt(n)']]; // initialize array of rows with header row as 1st item
for(var j=1;j<10;++j){ A.push([j, Math.sqrt(j)]) }
var csvRows = [];
for(var i=0,l=A.length; i<l; ++i){
csvRows.push(A[i].join(',')); // unquoted CSV row
}
var csvString = csvRows.join("\n");
console.log(csvString);
var csvWin = window.open("","","");
csvWin.document.write('<meta name="content-type" content="text/csv">');
csvWin.document.write('<meta name="content-disposition" content="attachment; filename=data.csv"> ');
csvWin.document.write(csvString);
Run Code Online (Sandbox Code Playgroud) 我有一个表格数据,我需要导出到csv而不使用任何外部插件或API.我使用了window.open
传递mime类型的方法但面临如下问题:
如何使用jquery确定系统上是否安装了Microsoft Excel或Open Office
代码应该独立于系统上安装的内容,即openoffice或ms excel.我相信CSV是可以预期在两个编辑器中显示的格式.
码
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/JavaScript">
$(document).ready(function(){
$("#btnExport").click(function(e) {
var msg = GetMimeTypes();
//OpenOffice
window.open('data:application/vnd.oasis.opendocument.spreadsheet,' + $('#dvData').html());
//MS-Excel
window.open('data:application/vnd.ms-excel,' + $('#dvData').html());
//CSV
window.open('data:application/csv,charset=utf-8,' + $('#dvData').html());
e.preventDefault();
});
});
function GetMimeTypes () {
var message = "";
// Internet Explorer supports the mimeTypes collection, but it is always empty
if (navigator.mimeTypes && navigator.mimeTypes.length > 0) {
var mimes = navigator.mimeTypes;
for (var i=0; i < mimes.length; i++) {
message += "<b>" + …
Run Code Online (Sandbox Code Playgroud) 我正在使用Spark 1.3.1(PySpark),我使用SQL查询生成了一个表.我现在有一个对象DataFrame
.我想将此DataFrame
对象(我将其称为"表")导出到csv文件,以便我可以操作它并绘制列.如何将DataFrame
"表" 导出到csv文件?
谢谢!
python dataframe export-to-csv apache-spark apache-spark-sql
我需要将javascript数组导出到excel文件并下载它我在这段代码中执行它.data是一个javascript对象数组.
var csvContent = "data:text/csv;charset=utf-8,";
data.forEach(function(dataMember, index)
{
dataString = dataMember.join(",");
csvContent += index < data.length ? dataString+ "\n" : dataString;
});
var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "upload_data" + (new Date()).getTime() + ".csv");
link.click();
Run Code Online (Sandbox Code Playgroud)
所有这些东西都可以正常工作,直到我的字符串属性具有非英语字符,如西班牙语,阿拉伯语或希伯来语.如何使用所有这些非ASCII值进行导出?
我如何让jq像这样采取json:
{
"host1": { "ip": "10.1.2.3" },
"host2": { "ip": "10.1.2.2" },
"host3": { "ip": "10.1.18.1" }
}
Run Code Online (Sandbox Code Playgroud)
并生成此输出:
host1, 10.1.2.3
host2, 10.1.2.2
host3, 10.1.18.1
Run Code Online (Sandbox Code Playgroud)
我对格式化不感兴趣,我只是无法弄清楚如何访问密钥名称和值.
我在python中使用win32.client将.xlsx和.xls文件转换为.csv.当我执行此代码时,它会给出错误.我的代码是:
def convertXLS2CSV(aFile):
'''converts a MS Excel file to csv w/ the same name in the same directory'''
print "------ beginning to convert XLS to CSV ------"
try:
import win32com.client, os
from win32com.client import constants as c
excel = win32com.client.Dispatch('Excel.Application')
fileDir, fileName = os.path.split(aFile)
nameOnly = os.path.splitext(fileName)
newName = nameOnly[0] + ".csv"
outCSV = os.path.join(fileDir, newName)
workbook = excel.Workbooks.Open(aFile)
workbook.SaveAs(outCSV, c.xlCSVMSDOS) # 24 represents xlCSVMSDOS
workbook.Close(False)
excel.Quit()
del excel
print "...Converted " + nameOnly + " to CSV"
except:
print …
Run Code Online (Sandbox Code Playgroud) 此命令适用于HiveQL:
insert overwrite directory '/data/home.csv' select * from testtable;
Run Code Online (Sandbox Code Playgroud)
但是使用Spark SQL我收到了一个org.apache.spark.sql.hive.HiveQl
堆栈跟踪错误:
java.lang.RuntimeException: Unsupported language features in query:
insert overwrite directory '/data/home.csv' select * from testtable
Run Code Online (Sandbox Code Playgroud)
请指导我在Spark SQL中编写导出到CSV功能.
export-to-csv ×10
csv ×4
apache-spark ×2
javascript ×2
python ×2
dataframe ×1
excel ×1
export ×1
hadoop ×1
heading ×1
hiveql ×1
html ×1
jq ×1
jquery ×1
json ×1
key ×1
object ×1
php ×1
postgresql ×1
r ×1
write.table ×1
xls ×1