本文參考:
下面的**對字串陣列執行 linq 查詢。
在 c# 版本中,該查詢使用 let 子句將每個字串分隔成欄位陣列。
c#vb
// create the text file.
string csvstring = @"greal,great lakes food market,howard snyder,marketing manager,(503) 555-7555,2732 baker blvd.,eugene,or,97403,usa
hungc,hungry coyote import store,yoshi latimer,sales representative,(503) 555-6874,city center plaza 516 main st.,elgin,or,97827,usa
lazyk,lazy k kountry store,john steel,marketing manager,(509) 555-7969,12 orchestra terrace,walla walla,wa,99362,usa
letss,let's stop n shop,jaime yorres,owner,(415) 555-5938,87 polk st. suite 5,san francisco,ca,94117,usa";
file.writealltext("cust.csv", csvstring);
// read into an array of strings.
string source = file.readalllines("cust.csv");
xelement cust = new xelement("root",
from str in source
let fields = str.split(',')
select new xelement("customer",
new xattribute("customerid", fields[0]),
new xelement("companyname", fields[1]),
new xelement("contactname", fields[2]),
new xelement("contacttitle", fields[3]),
new xelement("phone", fields[4]),
new xelement("fulladdress",
new xelement("address", fields[5]),
new xelement("city", fields[6]),
new xelement("region", fields[7]),
new xelement("postalcode", fields[8]),
new xelement("country", fields[9])))
);console.writeline(cust);
這段**產生以下輸出:
xmlgreat lakes food market
howard snyder
marketing manager
(503) 555-7555
2732 baker blvd.
eugene
or97403
usa
hungry coyote import store
yoshi latimer
sales representative
(503) 555-6874
city center plaza 516 main st.
elgin
or97827
usa
lazy k kountry store
john steel
marketing manager
(509) 555-7969
12 orchestra terrace
walla walla
wa99362
usa
let's stop n shop
jaime yorres
owner
(415) 555-5938
87 polk st. suite 5
san francisco
ca94117
usa
二、linq 從xml檔案中生成csv格式的文字檔案
本示例的 c# 版本使用方法語法和 aggregate 運算子通過乙個表示式從 xml 文件生成 csv 檔案。 有關更多資訊,請參見linq 中的查詢語法和方法語法 (c#)。
visual basic 版本使用過程**將字串集合聚合為乙個字串。
本示例使用下面的 xml 文件:示例 xml 檔案:customers 和 orders (linq to xml)。
c#vb
xelement custord = xelement.load("customersorders.xml");
string csv =
(from el in custord.element("customers").elements("customer")
select
string.format(",,,,,,,,,",
(string)el.attribute("customerid"),
(string)el.element("companyname"),
(string)el.element("contactname"),
(string)el.element("contacttitle"),
(string)el.element("phone"),
(string)el.element("fulladdress").element("address"),
(string)el.element("fulladdress").element("city"),
(string)el.element("fulladdress").element("region"),
(string)el.element("fulladdress").element("postalcode"),
(string)el.element("fulladdress").element("country"),
environment.newline))
.aggregate(
new stringbuilder(),
sb => sb.tostring()
);console.writeline(csv);
這段**產生以下輸出:
greal,great lakes food market,howard snyder,marketing manager,(503) 555-7555,2732 baker blvd.,eugene,or,97403,usa
hungc,hungry coyote import store,yoshi latimer,sales representative,(503) 555-6874,city center plaza 516 main st.,elgin,or,97827,usa
lazyk,lazy k kountry store,john steel,marketing manager,(509) 555-7969,12 orchestra terrace,walla walla,wa,99362,usa
letss,let's stop n shop,jaime yorres,owner,(415) 555-5938,87 polk st. suite 5,san francisco,ca,94117,usa
php 生成csv檔案
廢話不多說,上乾貨 方法一 匯出excel csv data 匯出資料 headlist 第一行,列名 filename 輸出excel檔名 functioncsv export data array headlist array filename 將資料通過fputcsv寫到檔案控制代碼 fput...
Java生成CSV檔案
pm要求在資料庫查出資料在瀏覽器匯出為csv的檔案,一接手沒多想直接用poi存進hssfworkbook物件,最後把檔案字尾名弄csv用流直接輸出到客戶端,三下五除二就搞定了,並且能用正常開啟。後來測試發現根本不是那麼回事。其實,csv是逗號分隔的 b 純文字 b 而xls是二進位制的,顯然這種低階...
sqlplus 生成csv 檔案
set echo off 非表示 set linesize 1000 列數 set pagesize 0 不分頁 set trimspool on spool 行末 無効 set pause off 相當於自動回車 set termout off 出力 畫面表示 set feedback off 行...