XML Spreadsheet复制到vb.net中的剪贴板并带有特殊字符
我可以使用以下代码将一些Excel数据(XML Spreadsheet格式)粘贴到剪贴板:
Dim textToPaste as String = GetMyXMLFormattedText() Dim dataobj As New DataObject Dim xmlStream as new IO.MemoryStream() xmlStream.Write(System.Text.ASCIIEncoding.ASCII.GetBytes(textToPaste), 0, textToPaste.Length) dataObj.SetData("XML Spreadsheet", xmlStream) Clipboard.SetDataObject(dataObj)
textToPaste是类似的东西
<?xml version="1.0"?> <?mso-application progid="Excel.Sheet"?> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" ... </Worksheet> </Workbook>
这个例子可行,但如果我在我的文档中有“é”这样的特殊字符,我会得到一些“?”。 我试图用其他格式来写我的stream
System.Text.UTF32Encoding.UTF32.GetBytes
和许多其他可用,或使用TextToPaste GetByteCount技术,但当我尝试粘贴到Excel,我总是得到一个错误告诉我,我不能粘贴这些数据。
是否可以使用XML电子表格格式粘贴除ASCII之外的其他内容?
谢谢
我最终使用System.Net.WebUtility.HtmlEncode来填充我的目的,以ascii代码对每个字符进行编码。 Excel能够理解这个代码。 这是一个例子(基本的连接)
<Data ss:Type=""String"">" & System.Net.WebUtility.HtmlEncode(MyTextwithéë) & "</Data>
在这种情况下,ASCII复制粘贴就足够了。