第一篇:perl讀取EXCEL文件輸出到XML
#!/usr/bin/perl use strict;
use warnings;
use Spreadsheet::ParseExcel;use XML::Writer;use utf8;binmode(STDIN, ':encoding(utf8)');binmode(STDOUT, ':encoding(utf8)');binmode(STDERR, ':encoding(utf8)');#接收參數(shù)--文件名 my $file = $ARGV[0];my $book = Spreadsheet::ParseExcel::Workbook->Parse($file);my @sheets = @{ $book->{Worksheet} };
#將文件內(nèi)容放入數(shù)組ary my @ary=();
foreach my $sheet(@sheets){
my($minRow, $maxRow)= $sheet->row_range();
my($minCol, $maxCol)= $sheet->col_range();
foreach my $row($minRow..$maxRow){
foreach my $col($minCol..$maxCol){
my $cell = $sheet->get_cell($row, $col);
next unless $cell;
$ary[$row][$col] = $cell->value;
}
}
}
#開始打印XML元素 my $writer;$writer=new XML::Writer(DATA_MODE=>1,DATA_INDENT=>2);$writer->xmlDecl('UTF-8','yes');$writer->startTag('aaaa');$writer->startTag('webs');#取當(dāng)前服務(wù)器時(shí)間,防止ID號重復(fù)
my($sec,$min,$hour,$day,$mon,$year,$weekday,$yeardate,$savinglightday)=(localtime(time));my $date=$year.++$mon.$day;#取出數(shù)組元素個(gè)數(shù) my $max_row=@ary-1;my $web_id='news';foreach my $new_row(0..$max_row){
my $web_name=“”;
if(!$ary[$new_row][3]){
$writer->startTag('web','id'=>“$new_row$web_id$date”,' url'=>“$ary[$new_row][2]”,' time_interval'=>“500”);
$writer->startTag('trans');
$writer->startTag('tran','id'=>“source”);
$writer->characters($web_name);
$writer->endTag('tran');
$writer->endTag('trans');
$writer->startTag('urls');
$writer->startTag('url','id'=>“com.aaaa.bigdata.news_child_url”);
$writer->endTag('url');
$writer->endTag('urls');
$writer->endTag('web');
}
else {
my $num=$ary[$new_row][5]+1;
$writer->startTag('web','id'=>“$new_row$web_id$date”,' url'=>“$ary[$new_row][2]”,' time_interval'=>“500”);
$writer->startTag('trans');
$writer->startTag('tran','id'=>“source”);
$writer->characters($web_name);
$writer->endTag('tran');
$writer->endTag('trans');
$writer->startTag('urls');
$writer->startTag('url','id'=>“com.aaaa.bigdata.news_child_url”);
$writer->endTag('url');
$writer->endTag('urls');
$writer->startTag('events');
$writer->startTag('event','id'=>“url”,'url'=>“$ary[$new_row][3]”,'min'=>“$ary[$new_row][4]”,'max'=>“$num”);
$writer->endTag('event');
$writer->endTag('events');
$writer->endTag('web');
} } $writer->startTag('web','id'=>“aaaa1”);$writer->startTag('properties','db_ip'=>“192.168.1.11”,'db_name'=>“sssss”,'db_user'=>“root”,'db_passwd'=>“123456”,'db_table'=>'test','parser'=>“FALSE”);$writer->startTag('property','id'=>“CHECK_title”);$writer->endTag('property');$writer->startTag('property','id'=>“content”);$writer->endTag('property');$writer->startTag('property','id'=>“publish_time”);$writer->endTag('property');$writer->startTag('property','id'=>“news_url”);$writer->endTag('property');$writer->startTag('property','id'=>“crawl_datetime”);zlg_time($writer);$writer->endTag('property');$writer->endTag('properties');$writer->endTag('web');$writer->endTag('webs');$writer->endTag('aaaa');$writer->end;
sub zlg_time {
my $time='time.strftime(“%Y-%m-%d %H:%M:%S”, time.localtime())';
my $zlg_data=“
return $timen]]>”;
$writer->characters($zlg_data);} exit(0);
另加一個(gè)腳本
接收參數(shù)1輸出的XML文件名、參數(shù)2輸入的excel文件名
#!/bin/bash dest_sa=$1 cs=$2 perl /home/url/xls.pl $cs >> $dest_sa sed-i 's//>/g' $dest_sa
第二篇:C 文件的讀取和寫入
C++文件的讀取和寫入.txt 2010-04-08 11:12筆記:C++文件的讀取和寫入
#include
using namespace std;
int main(){ char buffer[256];ifstream myfile(“c:a.txt”);ofstream outfile(“c:b.txt”);
if(!myfile){ cout << “Unable to open myfile”;exit(1);// terminate with error
} if(!outfile){ cout << “Unable to open otfile”;exit(1);// terminate with error } int a,b;int i=0,j=0;int data[6][2];while(!myfile.eof()){ myfile.getline(buffer,10);sscanf(buffer,“%d %d”,&a,&b);cout< outfile.close();return 0;} 無論讀寫都要包含 讀:從外部文件中將數(shù)據(jù)讀到程序中來處理 對于程序來說,是從外部讀入數(shù)據(jù),因此定義輸入流,即定義輸入流對象:ifsteam infile,infile就是輸入流對象。 這個(gè)對象當(dāng)中存放即將從文件讀入的數(shù)據(jù)流。假設(shè)有名字為myfile.txt的文件,存有兩行數(shù)字?jǐn)?shù)據(jù),具體方法: int a,b;ifstream infile;infile.open(“myfile.txt”);//注意文件的路徑 infile>>a>>b;//兩行數(shù)據(jù)可以連續(xù)讀出到變量里 infile.close() 如果是個(gè)很大的多行存儲的文本型文件可以這么讀: char buf[1024];//臨時(shí)保存讀取出來的文件內(nèi)容 string message;ifstream infile;infile.open(“myfile.js”);if(infile.is_open())//文件打開成功,說明曾經(jīng)寫入過東西 { while(infile.good()&&!infile.eof()){ memset(buf,0,1024);infile.getline(buf,1204);message = buf;......//這里可能對message做一些操作 cout< 寫:將程序中處理后的數(shù)據(jù)寫到文件當(dāng)中 對程序來說是將數(shù)據(jù)寫出去,即數(shù)據(jù)離開程序,因此定義輸出流對象ofstream outfile,outfile就是輸出流對象,這個(gè)對象用來存放將要寫到文件當(dāng)中的數(shù)據(jù)。具體做法: ofstream outfile;outfile.open(“myfile.bat”);//myfile.bat是存放數(shù)據(jù)的文件名 if(outfile.is_open()){ outfile< c++對文件的讀寫操作的例子 /*/從鍵盤讀入一行字符,把其中的字母依次放在磁盤文件fa2.dat中,再把它從磁盤文件讀入程序,將其中的小寫字母改成大寫字母,再存入磁盤fa3.dat中*/ #i nclude for(int i=0;c[i]!=0;i++)//對字符一個(gè)一個(gè)的處理,直到遇到'/0'為止 if(c[i]>=65&&c[i]<=90||c[i]>=97&&c[i]<=122){//保證輸入的字符是字符 outfile.put(c[i]);//將字母字符存入磁盤文件 cout< 演講稿 尊敬的老師們,同學(xué)們下午好: 我是來自10級經(jīng)濟(jì)學(xué)(2)班的學(xué)習(xí)委,我叫張盼盼,很榮幸有這次機(jī)會和大家一起交流擔(dān)任學(xué)習(xí)委員這一職務(wù)的經(jīng)驗(yàn)。 轉(zhuǎn)眼間大學(xué)生活已經(jīng)過了一年多,在這一年多的時(shí)間里,我一直擔(dān)任著學(xué)習(xí)委員這一職務(wù)?;赝@一年多,自己走過的路,留下的或深或淺的足跡,不僅充滿了歡愉,也充滿了淡淡的苦澀。一年多的工作,讓我學(xué)到了很多很多,下面將自己的工作經(jīng)驗(yàn)和大家一起分享。 學(xué)習(xí)委員是班上的一個(gè)重要職位,在我當(dāng)初當(dāng)上它的時(shí)候,我就在想一定不要辜負(fù)老師及同學(xué)們我的信任和支持,一定要把工作做好。要認(rèn)真負(fù)責(zé),態(tài)度踏實(shí),要有一定的組織,領(lǐng)導(dǎo),執(zhí)行能力,并且做事情要公平,公正,公開,積極落實(shí)學(xué)校學(xué)院的具體工作。作為一名合格的學(xué)習(xí)委員,要收集學(xué)生對老師的意見和老師的教學(xué)動態(tài)。在很多情況下,老師無法和那么多學(xué)生直接打交道,很多老師也無暇顧及那么多的學(xué)生,特別是大家剛進(jìn)入大學(xué),很多人一時(shí)還不適應(yīng)老師的教學(xué)模式。學(xué)習(xí)委員是老師與學(xué)生之間溝通的一個(gè)橋梁,學(xué)習(xí)委員要及時(shí)地向老師提出同學(xué)們的建議和疑問,熟悉老師對學(xué)生的基本要求。再次,學(xué)習(xí)委員在學(xué)習(xí)上要做好模范帶頭作用,要有優(yōu)異的成績,當(dāng)同學(xué)們向我提出問題時(shí),基本上給同學(xué)一個(gè)正確的回復(fù)。 總之,在一學(xué)年的工作之中,我懂得如何落實(shí)各項(xiàng)工作,如何和班委有效地分工合作,如何和同學(xué)溝通交流并且提高大家的學(xué)習(xí)積極性。當(dāng)然,我的工作還存在著很多不足之處。比日:有的時(shí)候得不到同學(xué)們的響應(yīng),同學(xué)們不積極主動支持我的工作;在收集同學(xué)們對自己工作意見方面做得不夠,有些事情做錯(cuò)了,沒有周圍同學(xué)的提醒,自己也沒有發(fā)覺等等。最嚴(yán)重的一次是,我沒有把英語四六級報(bào)名的時(shí)間,地點(diǎn)通知到位,導(dǎo)致我們班有4名同學(xué)錯(cuò)過報(bào)名的時(shí)間。這次事使我懂得了做事要腳踏實(shí)地,不能馬虎。 在這次的交流會中,我希望大家可以從中吸取一些好的經(jīng)驗(yàn),帶動本班級的學(xué)習(xí)風(fēng)氣,同時(shí)也相信大家在大學(xué)畢業(yè)后找到好的工作。謝謝大家! 浙江省重大社會活動氣象保障服務(wù)實(shí)施辦法(試行) 2004年7月8日 第一條 為規(guī)范我省重大社會活動氣象保障服務(wù)工作,加強(qiáng)重大社會活動氣象保障服務(wù)管理,特提出本實(shí)施辦法。 第二條 重大社會活動,是指各級黨委、政府領(lǐng)導(dǎo)部門組織的重大政治、社會、經(jīng)濟(jì)活動,重要會議以及重要軍事活動等。 第三條 各市、縣(區(qū))氣象局應(yīng)根據(jù)本地重大社會活動氣象服務(wù)的實(shí)際情況,制定本地區(qū)的重大社會活動氣象保障服務(wù)方案。省局決策服務(wù)中心制訂省級重大社會活動氣象保障服務(wù)工作方案。 第四條 省委、省政府在杭州組織的重大社會活動氣象保障服務(wù)由省局決策服務(wù)中心負(fù)責(zé);省委、省政府在杭州以外組織的重大社會活動氣象保障服務(wù)由活動所在地氣象局負(fù)責(zé),省局決策服務(wù)中心配合;各市、縣(區(qū))黨委、政府在當(dāng)?shù)亟M織的重大社會活動氣象保障服務(wù)由所在地市、縣(區(qū))氣象局負(fù)責(zé);各級地方黨委、政府跨區(qū)域組織的重大社會活動氣象保障服務(wù),由活動舉辦地氣象局協(xié)助活動舉辦方所轄地氣象局開展。 第五條 重大社會活動期間各有關(guān)氣象部門要相互配合,協(xié)同做好重大社會活動氣象保障服務(wù)工作,上級氣象業(yè)務(wù)部門根據(jù)下級氣象部門的要求,做好重大社會活動氣象保障服務(wù)的天氣預(yù)報(bào)會商和業(yè)務(wù)指導(dǎo);下級氣象部門根據(jù)上級氣象業(yè)務(wù)部門的要求,及時(shí)提供各類監(jiān)測、預(yù)報(bào)信息。 第六條 重大社會活動氣象保障服務(wù)單位要主動與活動舉辦部門聯(lián)系,及時(shí)了解對氣象服務(wù)的需求,有針對性地及時(shí)提供重大社會活動期間天氣氣候特點(diǎn)、前期天氣概況、未來1—3天的逐日和逐時(shí)段天氣預(yù)報(bào)、未來天氣展望等專題氣象服務(wù)。 第七條 省局決策服務(wù)中心是省級重大社會活動氣象保障服務(wù)的主要責(zé)任單位,省氣象臺、省氣候中心、省氣象信息中心、杭州市氣象局要按照省局決策服務(wù)中心的工作安排和要求,做好天氣氣候的監(jiān)測、預(yù)測、分析、評估和各項(xiàng)氣象服務(wù)工作。 第八條 各級氣象部門要高度重視重大社會活動的氣象保障服務(wù)工作,成立重大社會活動氣象保障服務(wù)領(lǐng)導(dǎo)小組,各有關(guān)部門和單位要緊密配合,分工協(xié)作;各級業(yè)務(wù)管理部門要做好相關(guān)工作的組織協(xié)調(diào)和督促檢查;各級行政管理部門要負(fù)責(zé)相關(guān)信息的對外宣傳、報(bào)道和行政、后勤服務(wù)保障工作;各有關(guān)業(yè)務(wù)單位要根據(jù)本單位重大社會活動氣象保障服務(wù)工作方案落實(shí)任務(wù)和責(zé)任。 第九條 重大社會活動結(jié)束后,負(fù)責(zé)單位要在半個(gè)月內(nèi)將重大社會活動氣象保障服務(wù)總結(jié)報(bào)上級業(yè)務(wù)主管部門。 時(shí)間:2015/10/26 作者:張貴勇 所在學(xué)校:鄭州大學(xué) 實(shí)習(xí)公司:北方大賢風(fēng)電科技 Matlab讀取文件函數(shù)總結(jié) 1.load讀取方式 a.基本說明: 只能讀取數(shù)值數(shù)據(jù),不能讀取含文本的數(shù)據(jù);日期按數(shù)值讀取。b.調(diào)用方式: a=load(filename);c. 有無分隔符限制: 無需輸入分隔符,可自動識別空格、逗號、分號、制表符。d. 能否自定義讀取范圍: 不能。 e. 適用文件類型: txt、csv。 2.importdata讀取方式 a.基本說明: 可讀取數(shù)值數(shù)據(jù)和含文本的數(shù)據(jù),但是要求文本在數(shù)據(jù)的第一行或第一列。返回值分為數(shù)值部分(data)和文本部分(textdata)b.調(diào)用方式: a=importdata(filename,delm,nheaderlines);filename:文件名(如果文件在其他路徑下,文件名前需加所在路徑。)delm:分隔符 nheaderlines:從第nheaderlines+1行開始讀取數(shù)值數(shù)據(jù)。c.有無分隔符限制: 多列數(shù)據(jù)時(shí)需輸入分隔符。若不輸入分隔符,整行會被作為字符串放入一列。d.能否自定義讀取范圍: 可從某一行開始讀取數(shù)值數(shù)據(jù)。若使用importdata按鈕,則可自定義讀取范圍和設(shè)置數(shù)據(jù)類型。f. 適用文件類型 txt、xls、xlsx、csv。 3.textscan讀取方式 a.基本說明: 可對列按照自定義格式讀取數(shù)據(jù),必須輸入每列的讀取格式,可跳過某個(gè)列或幾列。按數(shù)值讀取時(shí),缺少值以NaN填補(bǔ);按字符讀取時(shí),缺少值以空格填補(bǔ)。返回值按列放入元胞數(shù)組。b.調(diào)用方式: c = textscan(fid,'format',n,'param',value)fid:文件指針。使用textscan函數(shù)時(shí)需先使用fopen函數(shù)打開數(shù)據(jù)文件,返回給fid文件若不再使用,則需用fclose(fid)關(guān)閉文件?!甪ormat’:定義每列的讀取格式。例如%s表示按字符串讀取、%d表示按整數(shù)讀取、%D按日期讀取、%*表示跳過該列。level%u8表示將level1讀取成1,去掉level?!畃aram’,value:這兩個(gè)參數(shù)成對出現(xiàn)。例如’Delimiter’,’s’表示按分隔符為’,’進(jìn)行讀取。c.有無分隔符限制 可自定義分隔符,不是必須的。d.能否自定義讀取范圍: 時(shí)間:2015/10/26 作者:張貴勇 所在學(xué)校:鄭州大學(xué) 實(shí)習(xí)公司:北方大賢風(fēng)電科技 可跳過某列或某幾列數(shù)據(jù),但要保證跳過的列是可讀的,否則讀取也會出錯(cuò)。e.適用文件類型 txt、csv 4.textread讀取方式 a.基本說明: 適用于格式統(tǒng)一的txt文件的一次性大批量讀取。textread讀取某個(gè)文件后,下次再用,textread讀取這個(gè)文件時(shí),還是會從文件頭開始讀取。b.調(diào)用方式: [A,B,C,...] = textread(filename,format)[A,B,C,...] = textread(filename,format,N,’headerlines’,M)Filename:文件名; Format:就是要讀取的格式; A,B,C…:從文件中讀取到的數(shù)據(jù)。中括號里面變量的個(gè)數(shù)必須和format中定義的個(gè)數(shù)相同。 N:表示讀取的次數(shù),每次讀取一行。 Headerlines:表示從第M+1行開始讀入。 5.dlmread讀取方式 a. 基本說明: 只能讀取數(shù)值數(shù)據(jù)。如文件中含有文本,需使用range參數(shù)跳過。返回值為矩陣。b. 調(diào)用方式: result = dlmread(filename,delimiter,range);filename:文件名。delimiter:分隔符。 range:文件讀取范圍,格式為[R1 C1 R2 C2]。c. 有無分隔符限制: 可自定義分隔符,不是必須的。d. 能否自定義讀取范圍: 通過設(shè)置range,選擇讀取范圍。e. 適用文件類型 txt、csv。 6.xlsread讀取方式 a. 基本說明: 讀取xls文件,可讀取含文本的數(shù)據(jù),僅能返回?cái)?shù)值部分。 b. 調(diào)用方式: [num,txt,raw]=xlsread(file,sheet,range); file:需要讀取的文件。sheet:需要讀取的表單。 range:讀取范圍,格式為’A1:C4’。num:返回的數(shù)值數(shù)據(jù)。txt:返回的文本數(shù)據(jù)。 raw:返回未處理的數(shù)據(jù)。 c. 有無分隔符限制 無需輸入分隔符。 d. 能否自定義讀取范圍: 時(shí)間:2015/10/26 作者:張貴勇 所在學(xué)校:鄭州大學(xué) 實(shí)習(xí)公司:北方大賢風(fēng)電科技 由sheet和range定義讀取范圍。e. 文件適用范圍 xls、xlsx。 7.csvread讀取方式 a. 基本說明: 只能讀取逗號分隔的數(shù)值數(shù)據(jù)。如文件中含有文本,需使用range參數(shù)跳過。b.調(diào)用方式: m = csvread('filename',r,c,rng); filename:文件名字。r,c:開始讀取的位置 rng:讀取范圍,格式為[R1 C1 R2 C2] c.有無分隔符限制: 文件必須以逗號分隔。d. 能否自定義讀取范圍: 可由r,c ,rng定義讀取范圍。e. 文件適用范圍 txt、csv。 8.fread讀取方式 該函數(shù)讀取文件返回的是二進(jìn)制矩陣。 Matlab寫文件函數(shù)總結(jié) 1.xlswrite讀取方式 a.基本說明: 用matlab處理數(shù)據(jù)之后,需要將其保存到EXCEL內(nèi),而這必須用到xlswrite函數(shù)。 b.調(diào)用方式 A=xlswrite(filename, M);將矩陣M的數(shù)據(jù)寫入名為filename的Excel文件中。B=xlswrite(filename, M, sheet);將矩陣M的數(shù)據(jù)寫入文件名為filename中的指定的sheet中。 C=xlswrite(filename, M, range);將矩陣M中的數(shù)據(jù)寫入文件名為filename的Excel文件中,且由range制定存儲的區(qū)域,例如'C1:C2'.D=xlswrite(filename, M, sheet, range) status = xlswrite(filename,...);返回完成狀態(tài)值。如果寫入成功,則status為1;反之寫入失敗,則status為0.2.dlmwrite讀取方式 a.基本說明: 將矩陣寫入ASCII分隔的文件。dlmwrite函數(shù)不接受輸CELLM要導(dǎo)出一個(gè)單元格數(shù)組中只包含數(shù)字?jǐn)?shù)據(jù),使用cell2mat矩陣轉(zhuǎn)換為數(shù)字的單元格,然后再調(diào)用dlmwrite數(shù)組。 b.調(diào)用方式 時(shí)間:2015/10/26 作者:張貴勇 所在學(xué)校:鄭州大學(xué) 實(shí)習(xí)公司:北方大賢風(fēng)電科技 1)dlmwrite(filename, M)使用默認(rèn)的分隔符(')將矩陣M寫入ASCII格式的文件中。在目標(biāo)文件filname中,數(shù)據(jù)是從第一行的第一列開始寫的。輸入的filename是使用單引號括起來的字符串。 2)dlmwrite(filename, M, 'D')將矩陣M寫入一個(gè)ASCII格式的文件中,使用分隔符D來分割矩陣的元素。在目標(biāo)文件filname中,數(shù)據(jù)是從第一行的第一列開始寫的。逗號'是默認(rèn)的分隔符,使用t來產(chǎn)生制表符分割的文件。 3)dlmwrite(filename, M, 'D', R, C)將矩陣M寫入一個(gè)ASCII格式的文件中,使用分隔符D來分割矩陣的元素。在目標(biāo)文件filname中,數(shù)據(jù)是從第R行的第C列開始寫的,R和C從0開始,因此R=0,C=0指定了文件中的第一個(gè)數(shù)值,即左上角的位置。 4)dlmwrite(filename, M, '-append')matabc 將矩陣數(shù)據(jù)追加到文件的末尾。如果你不指定''-append',dlmwrite覆蓋文件中的任何現(xiàn)有數(shù)據(jù)。 5)dlmwrite(filename, M, '-append', attribute-value list) 接受一個(gè)屬性值對列表。用戶可以將'-append'標(biāo)志放在屬性-數(shù)值對之間,但不能放在屬性和它的值的中間。 從鍵盤輸入一個(gè)英文字母,如果它是大寫英文字母,則將其轉(zhuǎn)換為小寫英文字母,如果它是小寫英文字母,則將其轉(zhuǎn)換為大寫英文字母,然后將它及其ASCII碼值顯示到屏幕上,如果不是英文字母,則不轉(zhuǎn)換直接輸出到屏幕上。**輸入格式要求:提示信息:“Press a key and then press Enter:” **輸出格式要求:“%c, %dn” 程序運(yùn)行示例1如下: Press a key and then press Enter:A a, 97 程序運(yùn)行示例2如下: Press a key and then press Enter:a A, 65 #include第三篇:浙江省重.hdf5文件讀取程序
第四篇:Matlab文件讀取和寫函數(shù)總結(jié)
第五篇:如果不是英文字母,則不轉(zhuǎn)換直接輸出到屏幕上。