我有一个使用OpenXML SDK生成Word文档的库,该库的一个功能是生成最后一行(例如SUM(ABOVE))公式的表.
Word具有内置的这些功能,但在生成文档时,我必须假设Word未安装在计算机上.
问题是,如果我只是生成表格和公式字段,它将不会在打开文档时自动更新,用户必须打开文档并手动选择"更新字段"才能计算函数.
有没有办法在代码中执行此操作(无需手动计算功能)?
使用C#,有没有一种很好的方法来查找和替换docx文件中的文本字符串而不在该机器上安装word?
在此先感谢您的帮助和帮助.
我试图找到一些实用性/方向,以便最好地比较两个单词docx文件(原始版本和修改版本)的差异,然后突出显示c#中修改版本的更改.
再次感谢您提供的任何帮助.
我试图将表插入TableCell,但当我尝试在MS Word中打开它时,我得到一条消息:" a <p> is required before a </tc>".
当我在兼容模式下打开文件时,表格格式看起来很完美,但缺少表格行.将简单文本插入单元格工作正常,只有在我尝试插入整个表时才会出现问题.
将表格放在另一个表格之外的文档中也可以正常工作.
我在OpenXML API或Word/VSTO API中没有任何运气,找到了创建或修改书签可见性的方法.即使在Word中手动添加书签,也没有要检查的框以隐藏书签.虽然是在书签对话框,让你一个复选框显示隐藏的书签.那么如何在XML中表示隐藏的书签,您可以使用Open XML SDK创建它们吗?或者它们是MS不再希望我们创造的遗产?
有没有办法在ASP.Net页面中为新生成的OpenXML(docx)文件提供下载而不将其保存在临时文件夹中?
在MSDN上,我只找到了使用临时文件的教程,但我想过使用WordprocessingDocument.MainDocumentPart.GetStream()并直接写出流.
我需要的是在文本的末尾插入一个新行.
我尝试 run.Append(**new Break()**);
但是这模拟按下(Shift + Enter)键,如果我想要一个对齐的文本最新的行自动调整,在单词和单词之间有很多空格...
我遇到的另一个问题是"Breaks"/"New Lines"中的默认字体和大小.我尝试在这次运行中"Appen"段目标(包含休息)......但似乎是不允许的.
我有一个存储在Bitmap对象中的图像,我想将其粘贴到OpenXML文档中.我尝试使用MemoryStream作为中间步骤,如下所示:
ImagePart part = container.AddNewPart<ImagePart>("image/jpeg", imageId);
using (MemoryStream ms = new MemoryStream())
{
bitmap.Save(ms, ImageFormat.Jpeg);
part.FeedData(ms);
}
Run Code Online (Sandbox Code Playgroud)
但这总是导致媒体文件夹中的空文件和PowerPoint显示错误而不是图像.我知道MemoryStream有正确的图像数据,因为我已经将它写入文件而没有问题.当我尝试从FileStream加载图像时,它工作得很好.
如何将此Bitmap转换为OpenXML文档?
我想知道是否有一种简单的方法来阅读Excel 2010 XML?
这个XML的结构与我以前读取的结构不同.
特别是ss:index属性(ss:Index**="7")使事情变得复杂一些
编辑:更好地解释:
示例XML的片段
<Row ss:AutoFitHeight="0">
<Cell><Data ss:Type="String">Johny</Data></Cell>
<Cell ss:Index="3"><Data ss:Type="String">NY</Data></Cell>
Run Code Online (Sandbox Code Playgroud) 我把它缩小到:
//aantal auto's
Row aantalAutosRow = new Row();
aantalAutosRow.RowIndex = Convert.ToUInt32((tblXML.Rows.Count) + 2);
Cell aantalAutosCell = new Cell();
aantalAutosCell.CellReference = getColumnName(1);
aantalAutosCell.CellValue = new CellValue("Hoi");
aantalAutosRow.Append(aantalAutosCell);
sheetData.Append(aantalAutosRow);
Run Code Online (Sandbox Code Playgroud)
当Excel提示修复文件(sheet.xml)时,单击"是"后生成单元格
完整课程:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
using System.IO;
using System.Xml;
using System.Data;
namespace XML_naar_Excel
{
class Excel
{
public void convertToExcel(string padXml)
{
//maak dataset en vul met ingevoerde xml
DataSet dsXML = new DataSet();
dsXML.ReadXml(padXml);
DataTable tblXML = dsXML.Tables[2];
//opslaan
string padXlsx …Run Code Online (Sandbox Code Playgroud)