請問將資料轉成XML在EXCEL開啟的問題 |
尚未結案
|
kartan_01
一般會員 發表:42 回覆:60 積分:20 註冊:2004-12-08 發送簡訊給我 |
|
ATEIN
高階會員 發表:105 回覆:320 積分:125 註冊:2002-07-05 發送簡訊給我 |
|
kartan_01
一般會員 發表:42 回覆:60 積分:20 註冊:2004-12-08 發送簡訊給我 |
self.Odbciim_iprod.CommandText:= 'Select iim_iprod 料號, iim_idesc 品名, iim_group 製品群, iim_loc 倉庫位置, iim_imalg 管理區分, iim_iityp 資材碼, iim_moco 製造採購碼, iim_recode 要檢免檢, iim_stock 單位, iim_lead 交貨日期 From iim Where iim_iprod like ? '; self.Odbciim_iprod.Parameters.Item[0].Value:=self.TextBox1.Text '%'; self.DataSet_Odbciim_iprod.Clear; self.Odbciim_iprodDataAdapter.Fill(self.DataSet_Odbciim_iprod,'料號清單'); IF self.SaveFileDialog1.ShowDialog <> system.Windows.Forms.DialogResult.Cancel then begin self.DataSet_Odbciim_iprod.WriteXml(self.SaveFileDialog1.FileName); end;寫出來的XML資料並沒有被去掉前面的0 |
OsX
版主 發表:6 回覆:151 積分:111 註冊:2003-05-03 發送簡訊給我 |
引言:這應該是 Excel 的問題, 儲存格的內容被當成數值格式顯示, 所以000100 會變成100, 你試試看在寫xml時遇到這種資料用 " 或 ' 這個符號把資料包夾起來, 看是否可解決你的問題self.Odbciim_iprod.CommandText:= 'Select iim_iprod 料號, iim_idesc 品名, iim_group 製品群, iim_loc 倉庫位置, iim_imalg 管理區分, iim_iityp 資材碼, iim_moco 製造採購碼, iim_recode 要檢免檢, iim_stock 單位, iim_lead 交貨日期 From iim Where iim_iprod like ? '; self.Odbciim_iprod.Parameters.Item[0].Value:=self.TextBox1.Text '%'; self.DataSet_Odbciim_iprod.Clear; self.Odbciim_iprodDataAdapter.Fill(self.DataSet_Odbciim_iprod,'料號清單'); IF self.SaveFileDialog1.ShowDialog <> system.Windows.Forms.DialogResult.Cancel then begin self.DataSet_Odbciim_iprod.WriteXml(self.SaveFileDialog1.FileName); end;寫出來的XML資料並沒有被去掉前面的0 |
ATEIN
高階會員 發表:105 回覆:320 積分:125 註冊:2002-07-05 發送簡訊給我 |
|
kartan_01
一般會員 發表:42 回覆:60 積分:20 註冊:2004-12-08 發送簡訊給我 |
|
ATEIN
高階會員 發表:105 回覆:320 積分:125 註冊:2002-07-05 發送簡訊給我 |
|
wodahs
初階會員 發表:0 回覆:33 積分:26 註冊:2004-02-26 發送簡訊給我 |
引言: 我是利用2005的工具XML Mapper製造出.XSD檔案 Excel先開啟.XSD在匯入XML資料 這樣可以解決問題 可是這種方式步驟太多 可以在writexml時 同時將.XSD寫入嗎?如果是DataSet DataSet ds = new DataSet(); // Fill Data ds.WriteXml("Filename.xml",XmlWriteMode.WriteSchema); wodahs ====================================================================== 我是非出身科班的菜鳥,瞎子摸象,寫錯的地方,請大家包涵包涵,不要太認真 ^^ 歡迎大家批評指教,適時糾正我錯誤觀念,這樣我才會進步並學到正確的知識 ^^ ====================================================================== 發表人 - wodahs 於 2005/02/21 22:22:41 |
kartan_01
一般會員 發表:42 回覆:60 積分:20 註冊:2004-12-08 發送簡訊給我 |
|
wodahs
初階會員 發表:0 回覆:33 積分:26 註冊:2004-02-26 發送簡訊給我 |
引言:基本上,Excel的Xml的結構與DataSet所輸出的XML結構不一樣,所以描述欄位 資料的格式的方法不一樣,前者是使用〈Style〉定義格式,然後於Cell指定 套用的格式,與CSS概念有點像;而後者則是利用Schema定義資料的型態(不是 格式,也沒有格式,所以Excel才會自己判斷),所以,建議處理方法: 方法1.建立轉換的XLT,轉換輸出的DataSet Xml成為Ecxel Xml 方法2.直接擷取Excel Xml格式資料,逐筆判斷資料格式輸出套入 方法3.開啟Excel物件操作,不透過Xml Importer. (這個跟你要的不一樣) 上面幾種方法,印象中在網路上有些高手似乎有相關的文章,您可以找看看. 發表人 - wodahs 於 2005/02/22 12:29:52引言: 如果是DataSet DataSet ds = new DataSet(); // Fill Data ds.WriteXml("Filename.xml",XmlWriteMode.WriteSchema); wodahs此方式雖然可以將Schema寫入XML中 但是跟我想要的不一樣 我希望的是EXCEL能夠直接開啟XML檔案,資料能正常顯示 而不需要先載入.XSD 再匯入.XML |
kartan_01
一般會員 發表:42 回覆:60 積分:20 註冊:2004-12-08 發送簡訊給我 |
我試著利用ole輸出excel檔案,在一開始connect就發生錯誤
procedure TWinForm.Button2_Click(sender: System.Object; e: System.EventArgs); var filename:string; i:integer; myrowi:datarow; begin filename:='c:\XML\TEST.xls'; self.OleDbConnection1.ConnectionString:= 'Provider="Microsoft.Jet.OLEDB.4.0";Data Source="' filename '";Extended Properties=EXCEL 8.0;HDR=YES'; self.OleDbConnection1.Open; self.OleDbCommand1.CommandText:= 'CREATE TABLE [IIM] (IPROD varchar(15),LOT varchar(5))'; self.OleDbCommand1.ExecuteNonQuery; self.OleDbCommand1.CommandText:= 'INSERT INTO [IIM] (IPROD,LOT) VALUES(@IPROD,@LOT)'; for i:=0 to self.DataSet1.Tables['iim'].Rows.Count -1 do begin myrowi:=self.DataSet1.Tables['iim'].Rows[i]; self.OleDbCommand1.Parameters.Item['@IPROD'].Value:=myrowi.Item['iim_iprod'].ToString; self.OleDbCommand1.Parameters.Item['@LOT'].Value:=myrowi.Item['iim_loc'].ToString; end; self.OleDbConnection1.Close; end; procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs); begin self.DataSet1.Clear; self.SqlDataAdapter1.Fill(self.DataSet1,'iim'); self.DataGrid1.SetDataBinding(self.DataSet1,'iim'); end; |
code6421
版主 發表:43 回覆:223 積分:208 註冊:2002-08-16 發送簡訊給我 |
the tip is ' OleDbConnection conn = new OleDbConnection(
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" xlsFileName ";Extended Properties='Excel 8.0;HDR=Yes'"); Just coding...
Taiwan:http://code6421.ktop.com.tw
China:http://home.hoolee.com/~code6421
------
Just codeing... |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |