
[英]How to convert "Excel Xml"/"Xml Spreadsheet 2003", to .xlsx format without office/excel install
[英]How to convert ms office spreadsheet xml content into xlsx in Silverlight?
我有这样的电子表格XML
<?xml version="1.0"?>
<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<ss:Styles>
<ss:Style ss:ID="1">
<ss:Font ss:Bold="1"/>
</ss:Style>
</ss:Styles>
<ss:Worksheet ss:Name="Sheet1">
<ss:Table>
<ss:Column ss:Width="80"/>
<ss:Column ss:Width="80"/>
<ss:Column ss:Width="80"/>
<ss:Row ss:StyleID="1">
<ss:Cell>
<ss:Data ss:Type="String">First Name</ss:Data>
</ss:Cell>
<ss:Cell>
<ss:Data ss:Type="String">Last Name</ss:Data>
</ss:Cell>
<ss:Cell>
<ss:Data ss:Type="String">Phone Number</ss:Data>
</ss:Cell>
</ss:Row>
<ss:Row>
<ss:Cell>
<ss:Data ss:Type="String">Kevin</ss:Data>
</ss:Cell>
<ss:Cell>
<ss:Data ss:Type="String">Boske</ss:Data>
</ss:Cell>
<ss:Cell>
<ss:Data ss:Type="String">(425) 123-4567</ss:Data>
</ss:Cell>
</ss:Row>
</ss:Table>
</ss:Worksheet>
</ss:Workbook>
我想将此xml转换为xlsx。
我试过的是
private void btnExport_Click(object sender, RoutedEventArgs e)
{
SaveFileDialog Savedlg = new SaveFileDialog();
Savedlg.Filter = "XLS (.xls)|*.xls|xlsx (.xlsx)|*.xlsx";
byte[] xlfile = this.byts;
if ((bool)Savedlg.ShowDialog())
{
System.IO.MemoryStream mStream = new System.IO.MemoryStream();
mStream.Write(xlfile, 0, xlfile.Length);
Stream fileStream = Savedlg.OpenFile();
mStream.WriteTo(fileStream);
fileStream.Close();
}
}
byte[] byts = null;
private void import_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.ShowDialog();
System.IO.Stream fileStream = openFileDialog1.File.OpenRead();
this.byts= ReadFully(fileStream);
}
public static byte[] ReadFully(Stream input)
{
byte[] buffer = new byte[16 * 1024];
using (MemoryStream ms = new MemoryStream())
{
int read;
while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
return ms.ToArray();
}
}
另存为XLS可以正常工作,在EXCEL中打开该文件时,它会显示类似msg的消息
“您尝试打开的文件的格式不同于文件扩展名所指定的格式”。
另存为XLSX不起作用。
我建议使用XmlReader
或XDocument
或XmlDocument
类读取xml文件。 然后,使用Open XML SDK可以创建一个excel文件。
Open XML SDK具有较高的学习曲线。 因此,您可能还想看看Closed XML ,它是Open XML SDK的包装,并且学习曲线较为柔和。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.