zoukankan
html css js c++ java
用C#把文件转换为XML
using
System;
using
System.Drawing;
using
System.Collections;
using
System.ComponentModel;
using
System.Windows.Forms;
using
System.IO;
using
System.Xml;
namespace
MyWindows
{
/**/
///
<summary>
///
这个示例演示如何把Office文件编码为xml文件以及如何把生成的xml文件转换成Office文件
///
把文件转换成xml格式,然后就可以用web服务,.NET Remoting,WinSock等传送了(其中后两者可以不转换也可以传送)
///
xml解决了在多层架构中数据传输的问题,比如说在客户端可以用Web服务获取服务器端的office文件,修改后再回传给服务器
///
只要把文件转换成xml格式,便有好多方案可以使用了,而xml具有平台无关性,你可以在服务端用.net用发布web服务,然后客户端用
///
Java写一段applit小程序来处理发送过来的文件,当然我举的例子几乎没有任何显示意义,它却给了我们不少的启示.
///
另外如果你的解决方案是基于多平台的,那么他们之间的交互最好不要用远程应用程序接口调用(RPC),应该尽量用基于文档的交互,
///
比如说.net下的MSMQ,j2ee的JMQ.
///
///
示例中设计到好多的类,我并没有在所有的地方做过多注释,有不明白的地方请参阅MSDN,这是偶第一个windows程序,有不对的地方
///
欢迎各位指导
///
</summary>
public
class
Form1 : System.Windows.Forms.Form
{
/**/
///
<summary>
///
声明四个Button,一个OpenFileDialog,一个SaveFileDialog,以及两个XmlDocument
///
</summary>
private
System.Windows.Forms.Button button1;
private
System.Windows.Forms.Button button2;
private
System.Windows.Forms.OpenFileDialog openFileDialog1;
private
System.Windows.Forms.SaveFileDialog saveFileDialog1;
private
System.Windows.Forms.Button button3;
private
System.Windows.Forms.Button button4;
private
System.Xml.XmlDocument mXmlDoc;
private
System.Xml.XmlDocument doc;
private
System.ComponentModel.Container components
=
null
;
public
Form1()
{
//
//
Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
//
TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/**/
///
<summary>
///
清理所有正在使用的资源。
///
</summary>
protected
override
void
Dispose(
bool
disposing )
{
if
( disposing )
{
if
(components
!=
null
)
{
components.Dispose();
}
}
base
.Dispose( disposing );
}
Windows 窗体设计器生成的代码
#region
Windows 窗体设计器生成的代码
/**/
///
<summary>
///
设计器支持所需的方法 - 不要使用代码编辑器修改
///
此方法的内容。
///
</summary>
private
void
InitializeComponent()
{
this
.button1
=
new
System.Windows.Forms.Button();
this
.button2
=
new
System.Windows.Forms.Button();
this
.openFileDialog1
=
new
System.Windows.Forms.OpenFileDialog();
this
.saveFileDialog1
=
new
System.Windows.Forms.SaveFileDialog();
this
.button3
=
new
System.Windows.Forms.Button();
this
.button4
=
new
System.Windows.Forms.Button();
this
.SuspendLayout();
//
//
button1
//
this
.button1.Location
=
new
System.Drawing.Point(
96
,
32
);
this
.button1.Name
=
"
button1
"
;
this
.button1.TabIndex
=
0
;
this
.button1.Text
=
"
生成xml
"
;
this
.button1.Click
+=
new
System.EventHandler(
this
.button1_Click);
//
//
button2
//
this
.button2.Location
=
new
System.Drawing.Point(
96
,
80
);
this
.button2.Name
=
"
button2
"
;
this
.button2.TabIndex
=
1
;
this
.button2.Text
=
"
生成doc
"
;
this
.button2.Click
+=
new
System.EventHandler(
this
.button2_Click);
//
//
button3
//
this
.button3.Location
=
new
System.Drawing.Point(
8
,
32
);
this
.button3.Name
=
"
button3
"
;
this
.button3.TabIndex
=
2
;
this
.button3.Text
=
"
加载doc
"
;
this
.button3.Click
+=
new
System.EventHandler(
this
.button3_Click);
//
//
button4
//
this
.button4.Location
=
new
System.Drawing.Point(
8
,
80
);
this
.button4.Name
=
"
button4
"
;
this
.button4.TabIndex
=
3
;
this
.button4.Text
=
"
加载xml
"
;
this
.button4.Click
+=
new
System.EventHandler(
this
.button4_Click);
//
//
Form1
//
this
.AutoScaleBaseSize
=
new
System.Drawing.Size(
6
,
14
);
this
.ClientSize
=
new
System.Drawing.Size(
184
,
141
);
this
.Controls.Add(
this
.button4);
this
.Controls.Add(
this
.button3);
this
.Controls.Add(
this
.button2);
this
.Controls.Add(
this
.button1);
this
.Name
=
"
Form1
"
;
this
.Text
=
"
Form1
"
;
this
.ResumeLayout(
false
);
//
//
手工注册一下Load和Closed事件
//
this
.Load
+=
new
System.EventHandler(
this
.Form1_Load);
this
.Closed
+=
new
System.EventHandler(
this
.Form1_Closed);
}
#endregion
/**/
///
<summary>
///
从这个入口启动窗体
///
</summary>
static
void
Main()
{
Application.Run(
new
Form1());
}
/**/
///
<summary>
///
把加载的Office文件转换为xml文件
///
</summary>
///
<param name="sender"></param>
///
<param name="e"></param>
private
void
button1_Click(
object
sender, System.EventArgs e)
{
saveFileDialog1.Filter
=
"
xml 文件|*.xml
"
;
//
设置打开对话框的文件过滤条件
saveFileDialog1.Title
=
"
保存成 xml 文件
"
;
//
设置打开对话框的标题
saveFileDialog1.FileName
=
""
;
saveFileDialog1.ShowDialog();
//
打开对话框
if
(saveFileDialog1.FileName
!=
""
)
//
检测用户是否输入了保存文件名
{
mXmlDoc.Save(saveFileDialog1.FileName);
//
用私有对象mXmlDoc保存文件,mXmlDoc在前面声明过
MessageBox.Show(
"
保存成功
"
);
}
}
/**/
///
<summary>
///
把加载的xml文件转换为Office文件
///
</summary>
///
<param name="sender"></param>
///
<param name="e"></param>
private
void
button2_Click(
object
sender, System.EventArgs e)
{
//
从私有对象dox里选取me节点,这里的一些对xml对象的操作详细说明可以参考msdn以获取更多信息
XmlNode node
=
doc.DocumentElement .SelectSingleNode(
"
me
"
) ;
XmlElement ele
=
(XmlElement)node;
//
获取一个xml元素
string
pic
=
ele.GetAttribute (
"
aa
"
);
//
获取ele元素的aa属性并报讯在一个临时字符串变量pic
byte
[] bytes
=
Convert.FromBase64String (pic);
//
声明一个byte[]用来存放Base64解码转换过来的数据流
//
从保存对话框里获取文件保存地址
saveFileDialog1.Filter
=
"
Office Documents(*.doc, *.xls, *.ppt)|*.doc;*.xls;*.ppt
"
;
saveFileDialog1.Title
=
"
保存成 office 文件
"
;
saveFileDialog1.FileName
=
""
;
saveFileDialog1.ShowDialog();
if
(saveFileDialog1.FileName
!=
""
)
{
//
创建文件流并保存
FileStream outfile
=
new
System.IO .FileStream (saveFileDialog1.FileName,System.IO.FileMode.CreateNew);
outfile.Write(bytes,
0
,(
int
)bytes.Length );
MessageBox.Show(
"
保存成功
"
);
}
}
/**/
///
<summary>
///
加载窗口时的一些初始化行为
///
</summary>
///
<param name="sender"></param>
///
<param name="e"></param>
public
void
Form1_Load(
object
sender, System.EventArgs e)
{
MessageBox.Show(
"
欢迎使用蛙蛙牌文档转换器
"
);
}
/**/
///
<summary>
///
卸载窗体时把临时变量全部释放
///
</summary>
///
<param name="sender"></param>
///
<param name="e"></param>
public
void
Form1_Closed(
object
sender, System.EventArgs e)
{
mXmlDoc
=
null
;
doc
=
null
;
}
/**/
///
<summary>
///
加载office文件并编码序列花为一个XmlDocument变量
///
</summary>
///
<param name="sender"></param>
///
<param name="e"></param>
private
void
button3_Click(
object
sender, System.EventArgs e)
{
string
strFileName;
openFileDialog1.Filter
=
"
Office Documents(*.doc, *.xls, *.ppt)|*.doc;*.xls;*.ppt
"
;
openFileDialog1.FilterIndex
=
1
;
openFileDialog1.FileName
=
""
;
openFileDialog1.ShowDialog();
strFileName
=
openFileDialog1.FileName;
if
(strFileName.Length
!=
0
)
{
System.IO.FileStream inFile
=
new
FileStream(strFileName,System.IO.FileMode.Open,System.IO.FileAccess.Read);
byte
[] binaryData
=
new
byte
[inFile.Length];
inFile.Read(binaryData,
0
,(
int
)inFile.Length);
string
mStr
=
Convert.ToBase64String(binaryData);
string
hh
=
mStr;
mXmlDoc
=
new
System.Xml.XmlDocument();
mStr
=
string
.Format (
"
<wawa><me aa=\
"
{
0
}
\
"
/></wawa>
"
,mStr);
mXmlDoc.LoadXml( mStr);
MessageBox.Show(
"
加载成功
"
);
}
}
/**/
///
<summary>
///
加载xml文件到私有对象dox
///
</summary>
///
<param name="sender"></param>
///
<param name="e"></param>
private
void
button4_Click(
object
sender, System.EventArgs e)
{
string
strFileName;
openFileDialog1.Filter
=
"
xml 文件|*.xml
"
;
openFileDialog1.FilterIndex
=
1
;
openFileDialog1.FileName
=
""
;
openFileDialog1.ShowDialog();
strFileName
=
openFileDialog1.FileName;
//
If the user does not cancel, open the document.
if
(strFileName.Length
!=
0
)
{
doc
=
new
XmlDocument();
doc.Load(strFileName);
MessageBox.Show(
"
加载成功
"
);
}
}
}
}
查看全文
相关阅读:
二、云计算openstack共享组件--时间同步服务ntp
一、云计算openstack介绍
五、Kvm虚拟机迁移
四、Kvm虚拟化网络管理
三、Kvm虚拟化存储管理
二、kvm虚拟机管理
一、kvm虚拟化介绍
九、Linux网络技术管理及进程管理
园主的码云网站,可以在里面查看园主的练习代码哦
万能Makefile,前戏做足项目做起来才顺畅。
原文地址:https://www.cnblogs.com/skylaugh/p/595654.html
最新文章
Unity3D编辑器扩展(三)——使用GUI绘制窗口
Unity3D编辑器扩展(二)——定义自己的窗口
Unity3D编辑器扩展(一)——定义自己的菜单按钮
DOTween的基本用法
Unity3D InputManager详解
如何理解Unity组件化开发模式
Unity自动生成AnimatorController
Unity自动切割动画
支付宝原生应用采用uni-app重写兼容微信小程序遇到的兼容性问题
serviceWorker离线加载与消息推送
热门文章
html的渲染过程
浮动以及相关联的BFC
css水平垂直居中的几种方式
react项目中异常捕获处理
小程序蓝牙
react+echarts/g2/bizcharts可视化图表
JS执行机制
git常用命令(二)
十一、SAMBA服务和FTP服务讲解
十、rpm和yum软件管理
Copyright © 2011-2022 走看看