我想在excel中存储xml文件。为此,我将xml转换为字符串并将其存储在单元格中。由于excel单元格不能支持超过32767个字符,所以我根据字符数分割了xml,并将分割的xml存储在不同的单元格中。但问题是,在读取xml时,由于xml被破坏而发生错误。这是代码。任何帮助都会很棒。我想知道是否可以建议任何新方法。
private void SaveXml(XmlDocument xmlDoc)
{
Excel.Workbook WB = Globals.ThisAddIn.Application.ActiveWorkbook;
string strXml = string.Empty;
if (xmlDoc != null)
strXml = xmlDoc.OuterXml;
else
return;
Excel.Worksheet ws = null;
try
{
ws = WB.Sheets["XML"];
}
catch
{
ws = (Excel.Worksheet)WB.Sheets.Add(After: WB.Sheets[WB.Sheets.Count]);
ws.Name = "XML";
WB.Save();
}
int MergeCount = 1;
if (strXml.Length > 32700)
{
while (strXml.Length > 32700)
{
ws.Cells[MergeCount, 1] = strXml.Substring(0, 32699);
strXml = strXml.Substring(32700);
MergeCount++;
}
ws.Cells[MergeCount, 1] = strXml;
}
else
ws.Cells[1, 1] = strXml;
}
private XmlDocument GetXml()
{
Excel.Workbook WB = Globals.ThisAddIn.Application.ActiveWorkbook;
XmlDocument xmlDoc = new XmlDocument();
string strXml = string.Empty;
int XmlColumn = 1;
try
{
Excel.Worksheet ws = WB.Sheets["XML"];
while (ws.Cells[XmlColumn, 1].Value != null)
{
strXml = strXml + ws.Cells[XmlColumn, 1].Value.ToString();
XmlColumn++;
}
xmlDoc.LoadXml(strXml);
}
catch
{
MessageBox.Show("Xml not found.");
}
return xmlDoc;
}
答案 0 :(得分:0)
让我想知道你为什么要在一个单元格中存储一个xml文件...这似乎是一件奇怪的事情...你有关于拆分它们的问题是它不再是一个有效的xml方案...
我知道这是一个旧链接,但take a look here用于将xml数据导入工作簿(使用xsl)