在这篇文章中,我们将为您详细介绍如何在将值附加到Java中的CSV文件时为每次迭代仅附加一行/行的内容,并且讨论关于java往csv中追加数据的相关问题。此外,我们还会涉及一些关于(react-csv
在这篇文章中,我们将为您详细介绍如何在将值附加到 Java 中的 CSV 文件时为每次迭代仅附加一行/行的内容,并且讨论关于java往csv中追加数据的相关问题。此外,我们还会涉及一些关于(react-csv) 分配具有相同列名但来自不同表的 csv 标题、15、解决 14 中 csv 用 excel 打开乱码的问题 open (''zhihu.csv'',''w'',newline='''',encoding=''ut...、Apache Commons CSV 1.5,读写 CSV 文件的 Java 库、CSV 差异查找器不包括输出文件中的标题 diff.csv 输出:'diff.csv' 想要的输出:问题可能出在哪里:完整代码在这里:GUI空白图片:的知识,以帮助您更全面地了解这个主题。
本文目录一览:- 如何在将值附加到 Java 中的 CSV 文件时为每次迭代仅附加一行/行(java往csv中追加数据)
- (react-csv) 分配具有相同列名但来自不同表的 csv 标题
- 15、解决 14 中 csv 用 excel 打开乱码的问题 open (''zhihu.csv'',''w'',newline='''',encoding=''ut...
- Apache Commons CSV 1.5,读写 CSV 文件的 Java 库
- CSV 差异查找器不包括输出文件中的标题 diff.csv 输出:'diff.csv' 想要的输出:问题可能出在哪里:完整代码在这里:GUI空白图片:
如何在将值附加到 Java 中的 CSV 文件时为每次迭代仅附加一行/行(java往csv中追加数据)
如何解决如何在将值附加到 Java 中的 CSV 文件时为每次迭代仅附加一行/行
我在将数据附加到我的 CSV 文件方面遇到了一些问题。问题是,每当我第二次尝试将数据附加到我的 CSV 文件时,附加到 CSV 文件的第二个值都带有第一个附加值。这就像在附加到 CSV 文件时带来了现有值。因此,由于这个问题,在这个语句中导致数组索引越界异常:cust[read2DStringIndex][newVarIndexer] = fromfile[g]; ,CSV 文件的数据重复现有值以及最新附加值,并且第一个值仅显示在我的 GUI 表中。
CSV 文件:
表格:
这是我编写和读取 CSV 的源代码:
public void writeCustomerCSV(){ // this creates a CSV file which stores the inputs of the user
try {
BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\\\Users\\\\RALPH\\\\Documents\\\\Database Java CSV\\\\customers.csv",true)); // when I set append mode to true,cust[read2DStringIndex][newVarIndexer] = fromfile[g] results to index array out of bounds to 10
StringBuilder sb = new StringBuilder();
int y;
for(int x = 0; x < itemTo2D.length; x++){
if(itemTo2D[x][0] != null){
for(y = 0; y < itemTo2D[0].length; y++){
sb.append(itemTo2D[x][y]);
sb.append(",");
}
}
sb.append("-"); //separation for rows
sb.append(","); // separation for columns
}
bw.write(sb.toString());
bw.close();
}
catch (Exception ex){
}
}
public void readCustomerCSV(){ // reads the contents of the CSV file
String[][] twoDArray = new String[10][7];
int read2DStringIndex = 0;
int newVarIndexer = 0;
DefaultTableModel tblmodelll = (DefaultTableModel) mainTable.getModel(); // table
String[] fromfile = {}; // 1d string for getting the columns(7 columns) of the CSV file
int ak = 0;
int sk = 0;
try{
BufferedReader br = new BufferedReader(new FileReader("C:\\\\Users\\\\RALPH\\\\Documents\\\\Database Java CSV\\\\customers.csv"));
String line;
while ((line = br.readLine()) != null){
fromfile = line.split(","); //separates the columns by a comma
for(int c = 0; c < fromfile.length; c++){
if(fromfile[c].equals("-")){
sk = 0;
ak++;
if(c > 0){
if(!fromfile[c-1].equals("-")){
id = id + 1;
}
}
} else{
twoDArray[ak][sk] = fromfile[c];
sk++;
}
}
}
} catch (Exception ex){
}
for(int g = 0; g < fromfile.length; g++){
if(fromfile[g].equals("-")){ //if there is a presence of a dash,it increments the read2DStringINdex (row index) of the 2D array
read2DStringIndex++;
newVarIndexer = 0;
}
else{
cust[read2DStringIndex][newVarIndexer] = fromfile[g]; //cust is the 2D array(declared universal) which is going to display the values to the table
newVarIndexer++;
}
}
for(int h = 0; h < cust.length; h++){ //prints cust (2D array),just to check what data is being stored
for(int p = 0; p < cust[0].length; p++){
System.out.println(cust[h][p] + ",");
}
}
setrowcount = 0;
for(int r = 0; r < cust.length; r++){
if(setrowcount == 0){
tblmodelll.setRowCount(0);
}
try{
if(cust[r][0].equals("null") == false){
tblmodelll.addRow(cust[r]); //displays the cust(2D array) data to table
}
} catch(Exception e){
}
setrowcount++;
}
}
我的代码结构中是否缺少某些内容,或者我附加值的逻辑不正确? 您的回答确实会帮助我解决这个问题。 非常感谢。
(react-csv) 分配具有相同列名但来自不同表的 csv 标题
如何解决(react-csv) 分配具有相同列名但来自不同表的 csv 标题?
我有两个表,订单和阅读器。它们都有列名状态。 现在对于 csv 报告标题,它将是
this.clientsList = [
{label: "Readers Status". key: "status"}
{label: "Orders Status". key: "status",}
]
预期:读者状态的csv标头将显示读者状态,订单状态将显示订单状态 实际:csv 标题将两列都显示为阅读器状态,因为它是“状态”放在首位
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
15、解决 14 中 csv 用 excel 打开乱码的问题 open (''zhihu.csv'',''w'',newline='''',encoding=''ut...
解决 14 中 csv 用 excel 打开乱码的问题 ,其实就是在写 csv 的时候把 utf-8 改成 utf-8-sig
open(''zhihu.csv'',''w'',newline='''',encoding=''utf-8-sig'')
这个和 csv 文件的 bom 有关,参考下面信息
下面是在练习 14 的基础上改一下编码,效果见下面截图
1 # 爬取知乎大v张佳玮的文章“标题”、“摘要”、“链接”,并存储到本地文件
2 # URL https://www.zhihu.com/people/zhang-jia-wei/posts
3
4 import requests
5 import time
6 import openpyxl
7 import csv
8
9 headers = {
10 ''accept'': ''text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3'',
11 ''accept-language'': ''zh-CN,zh;q=0.9'',
12 ''cache-control'': ''max-age=0'',
13 ''cookie'':''__DAYU_PP=iJb63REJnnjIMmBvzNMV65ab0a6aae4f; q_c1=d75d908a13c44b95bd75f27578ad2088|1521641428000|1521641428000; _zap=bec28151-809b-4936-971a-d18f5255add0; tgw_l7_route=f2979fdd289e2265b2f12e4f4a478330; _xsrf=wQDRNSLBlRv3aimMzhUNyqg1BpLUnWAr; d_c0="ABDmoGi2RQ-PTp5SSFyQvDgz_QEjeQfCFgk=|1555156366"; capsion_ticket="2|1:0|10:1555156366|14:capsion_ticket|44:MTBhN2FkYjYyNWEyNDFjYWJiYTk2N2E1YTA1NDE4OTk=|084e15694c6993269b3aab564e9ea5d7983782f4b37dbc4537e000aa7b081901"'',
14 ''upgrade-insecure-requests'': ''1'',
15 ''user-agent'': ''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36''
16 }
17
18 res = requests.get(''https://www.zhihu.com/api/v4/members/zhang-jia-wei/articles?include=data%5B*%5D.comment_count%2Csuggest_edit%2Cis_normal%2Cthumbnail_extra_info%2Cthumbnail%2Ccan_comment%2Ccomment_permission%2Cadmin_closed_comment%2Ccontent%2Cvoteup_count%2Ccreated%2Cupdated%2Cupvoted_followees%2Cvoting%2Creview_info%2Cis_labeled%2Clabel_info%3Bdata%5B*%5D.author.badge%5B%3F(type%3Dbest_answerer)%5D.topics&offset=0&limit=20&sort_by=created'',headers=headers)
19
20 totals = res.json()[''paging''][''totals'']
21 num = 0
22
23 # excel 表头部分
24
25 wb = openpyxl.Workbook()
26 sheet = wb.active
27 sheet.title = ''张佳玮的文章''
28 sheet[''A1''] = ''编号''
29 sheet[''B1''] = ''标题''
30 sheet[''C1''] = ''创建时间''
31 sheet[''D1''] = ''链接''
32 sheet[''E1''] = ''摘要''
33
34 # csv 表头部分
35
36 with open(''zhihu.csv'',''w'',newline='''',encoding=''utf-8-sig'') as csv_file:
37 writer = csv.writer(csv_file)
38 writer.writerow([''编号'',''标题'',''创建时间'',''链接'',''摘要''])
39
40 for offset in range(0,21,20):
41 res = requests.get(''https://www.zhihu.com/api/v4/members/zhang-jia-wei/articles?include=data%5B*%5D.comment_count%2Csuggest_edit%2Cis_normal%2Cthumbnail_extra_info%2Cthumbnail%2Ccan_comment%2Ccomment_permission%2Cadmin_closed_comment%2Ccontent%2Cvoteup_count%2Ccreated%2Cupdated%2Cupvoted_followees%2Cvoting%2Creview_info%2Cis_labeled%2Clabel_info%3Bdata%5B*%5D.author.badge%5B%3F(type%3Dbest_answerer)%5D.topics&offset={}&limit=20&sort_by=created''.format(offset),headers=headers)
42 html = res.json()
43 items = res.json()[''data'']
44 for item in items:
45 num = num + 1
46 print(num,end=''\t'')
47 timeArray = time.localtime(item[''created''])
48 print(time.strftime("%Y-%m-%d %H:%M:%S",timeArray),end=''\t'')
49 print(item[''title''])
50
51 # excel 内容部分
52 sheet.append([num,item[''title''],time.strftime("%Y-%m-%d %H:%M:%S",timeArray),item[''url''],item[''excerpt'']])
53
54 # csv 内容部分
55 writer.writerow([num,item[''title''],time.strftime("%Y-%m-%d %H:%M:%S",timeArray),item[''url''],item[''excerpt'']])
56
57 # excel 保存到文件
58 wb.save(''zhihu.xlsx'')
Apache Commons CSV 1.5,读写 CSV 文件的 Java 库
Apache Commons CSV 1.5 已发布(要求 Java 7+),Commons CSV 是一个用来读写各种 Comma Separated Value (CSV) 格式文件的 Java 库。
主要改进记录如下:
withNullString value is printed without quotes when QuoteMode.ALL is specified; add QuoteMode.ALL_NON_NULL. PR #17. Fixes CSV-203.
Fix outdated comments about FileReader in CSVParser #13. Fixes CSV-194.
Fix incorrect method name ''withFirstRowAsHeader'' in user guide. Fixes CSV-193.
Negative numeric values in the first column are always quoted in minimal mode. Fixes CSV-171.
Update platform requirement from Java 6 to 7.
Do not use RuntimeException in CSVParser.iterator().new Iterator() {...}.getNextRecord(). Fixes CSV-201.
更多改进内容点此查看。
下载地址:
http://commons.apache.org/proper/commons-csv/download_csv.cgi
CSV 差异查找器不包括输出文件中的标题 diff.csv 输出:'diff.csv' 想要的输出:问题可能出在哪里:完整代码在这里:GUI空白图片:
如何解决CSV 差异查找器不包括输出文件中的标题 diff.csv 输出:''diff.csv'' 想要的输出:问题可能出在哪里:完整代码在这里:GUI空白图片:
我正在开发一个简单的 Tkinter GUI 程序,该程序显示 2 个 CSV 文件之间的不同行。我希望标题包含在“diff.csv”中
diff.csv 输出:
hits_data,2021-03-23T16:48:50.299Z,2021-03-23T16:48:50.200Z,43.118419647,-77.613418579,176.10,2,00,461.837500,461.837662,0.000,-50.1,0.0,1,hits_data,2021-03-23T16:48:48.914Z,2021-03-23T16:48:48.800Z,176.00,463.612500,463.612390,-72.6,2021-03-23T16:48:54.534Z,2021-03-23T16:48:54.500Z,43.118415833,175.80,445.500000,445.499915,-73.9,5777000.0,2021-03-23T16:49:13.758Z,2021-03-23T16:49:13.700Z,43.118412018,-77.613410950,174.70,395.593750,395.595406,-81.8,2021-03-23T16:49:00.960Z,2021-03-23T16:49:00.900Z,43.118412019,175.70,463.300000,463.299637,-68.3,212000.0,
我需要帮助找到一种方法来编写 csv1 或 csv2 的标头(文件将具有相同的标头)。
''diff.csv'' 想要的输出:
row_type,mission_id,system_id,sys_date_time,gps_date_time,lat_dd,lon_dd,alt_m,gps_speed_mph,gps_status,trans_uid,freq_cluster_mhz,freq_raw_mhz,bandwidth_khz,RSSi_dbm,snr_dbm,modulation,type,duration_s,hit_count,slot_id,slot_status,attention,attention_group,attention_name,call_id
hits_data,
问题可能出在哪里:
读取“csv1.csv”和“csv2.csv”,然后将不同的行写入“diff.csv”。我在这里找到了这个特定的代码:
https://www.edureka.co/community/53649/python-script-to-compare-2-files
def compare1():
with open(''csv1.csv'',''r'') as file1:
with open(''csv2.csv'',''r'') as file2:
difference = set(file1).difference(file2)
with open(''diff.csv'',''w'') as file_out:
for row in difference:
file_out.write(row)
完整代码在这里:
from tkinter import filedialog
from tkinter import *
import shutil
import pandas as pd
from collections import defaultdict
import csv
def gui():
def button_browse_callback():
filename = filedialog.askopenfilename()
src = filename
dst = "csv1.csv"
shutil.copy(src,dst)
entry.delete(0,END)
entry.insert(0,filename)
def button_browse_callback2():
filename2 = filedialog.askopenfilename()
src = filename2
dst = "csv2.csv"
shutil.copy(src,dst)
entry2.delete(0,END)
entry2.insert(0,filename2)
def compare1():
with open(''csv1.csv'',''r'') as file1:
with open(''csv2.csv'',''r'') as file2:
difference = set(file1).difference(file2)
with open(''diff.csv'',''w'') as file_out:
for row in difference:
file_out.write(row)
def parse1():
dataset = pd.read_csv(''diff.csv'',header=None)
ftCol = dataset.iloc[0:,0].values
write(ftCol)
def parse2():
dataset = pd.read_csv(''diff.csv'',header=None)
ftCol = dataset.iloc[:,4].values
write(ftCol)
def parse3():
dataset = pd.read_csv(''diff.csv'',5].values
write(ftCol)
def parse4():
dataset = pd.read_csv(''diff.csv'',6].values
write(ftCol)
def parse5():
dataset = pd.read_csv(''diff.csv'',7].values
write(ftCol)
def parse6():
dataset = pd.read_csv(''diff.csv'',11].values
write(ftCol)
def parse7():
dataset = pd.read_csv(''diff.csv'',12].values
write(ftCol)
def parse8():
dataset = pd.read_csv(''diff.csv'',14].values
write(ftCol)
def parse9():
dataset = pd.read_csv(''diff.csv'',19].values
write(ftCol)
def write(*message,end = "\\n",sep = " "):
text = ""
for item in message:
text += "{}".format(item)
text += sep
text += end
Console.insert(INSERT,text)
def clear():
Console.delete(1.0,END)
root = Tk()
root.title(''CSV Compare'')
root.configure(background=''#3A3B3C'',width=10,height=10,padx=6,pady=7)
frame = Frame(root,background=''#3A3B3C'')
frame.pack()
variable = StringVar(root)
root.resizable(width=False,height=False)
separator = Frame(root,height=2,bd=1,relief=SUNKEN)
statusText = StringVar(root)
statusText.set("Insert CSV files then press Go")
entry = Entry(root,width=110)
message = Label(root,textvariable=statusText,background=''lightgrey'')
entry2 = Entry(root,width=110)
button_go = Button(root,text="Go",command=compare1,background=''orange'',height=4)
button_exit = Button(root,text="Exit",command=sys.exit,background=''#fed8b1''
)
button_parse = Button(root,text=''System Date'',command=parse1)
button_parse2 = Button(root,text=''GPS Date'',command=parse2)
button_parse3 = Button(root,text=''Latitude'',command=parse3)
button_parse4 = Button(root,text=''Longitude'',command=parse4)
button_parse5 = Button(root,text=''alt_m'',command=parse5)
button_parse6 = Button(root,text=''Freq Cluster'',command=parse6)
button_parse7 = Button(root,text=''Freq Raw'',command=parse7)
button_parse8 = Button(root,text=''RSSi_dbm'',command=parse8)
button_parse9 = Button(root,text=''Hit count'',command=parse9)
button_clear = Button(root,text=''Clear'',background=''lightblue'',command=clear)
b1 = Button(root,text="First CSV",command=button_browse_callback,background=''#fed8b1'',)
b2 = Button(root,text="Second CSV",command=button_browse_callback2,background=''#fed8b1'')
separator2 = Frame(root,relief=SUNKEN)
separator3 = Frame(root,relief=SUNKEN)
statusText2 = StringVar(root)
message2 = Label(root,textvariable=statusText2,background=''lightgrey'')
Console = Text(root,height=15,width=60)
message.pack()
separator.pack(fill=X,padx=110,pady=5)
b1.pack(side=TOP,anchor=NW,padx=20,pady= 10)
entry.pack(side=TOP,padx=20)
b2.pack(side=TOP,pady= 10)
entry2.pack(side=TOP,padx=20)
button_go.pack(pady=6)
b2.pack()
statusText2.set("Extract Data from diff.csv")
separator3.pack(fill=X,padx=90,pady=5)
message2.pack()
separator2.pack(fill=X,pady=5)
Console.pack()
variable.set("Data Type")
button_clear.pack(pady=4,padx=5)
button_parse.pack(pady=4,side=LEFT,padx=5)
button_parse2.pack(pady=4,padx=5)
button_parse3.pack(pady=4,padx=5 )
button_parse4.pack(pady=4,padx=5 )
button_parse5.pack(pady=4,padx=5 )
button_parse6.pack(pady=4,padx=5 )
button_parse7.pack(pady=4,padx=5 )
button_parse8.pack(pady=4,padx=5)
button_parse9.pack(pady=4,padx=5)
button_exit.pack(side=LEFT,padx=15)
root.maxsize(800,670);
root.minsize(800,670);
root.mainloop()
gui()
GUI空白图片:
解决方法
正如我在您的代码中看到的,您只将差异写入输出文件。您应该尝试在 compare1() 函数中的 for 语句之前添加这一行:
file_out.write(file1.readline())
今天的关于如何在将值附加到 Java 中的 CSV 文件时为每次迭代仅附加一行/行和java往csv中追加数据的分享已经结束,谢谢您的关注,如果想了解更多关于(react-csv) 分配具有相同列名但来自不同表的 csv 标题、15、解决 14 中 csv 用 excel 打开乱码的问题 open (''zhihu.csv'',''w'',newline='''',encoding=''ut...、Apache Commons CSV 1.5,读写 CSV 文件的 Java 库、CSV 差异查找器不包括输出文件中的标题 diff.csv 输出:'diff.csv' 想要的输出:问题可能出在哪里:完整代码在这里:GUI空白图片:的相关知识,请在本站进行查询。
本文标签: