标签: openxml

Excel 2003 XML格式 - AutoFitWidth无法正常工作

我有一个程序,以Excel 2003 XML格式吐出Excel工作簿.它可以解决一个问题,我无法自动设置列宽.

我制作的片段:

  <Table >
   <Column ss:AutoFitWidth="1" ss:Width="2"/>
   <Row ss:AutoFitHeight="0" ss:Height="14.55">
    <Cell ss:StyleID="s62"><Data ss:Type="String">Database</Data></Cell>
Run Code Online (Sandbox Code Playgroud)

这不会将列设置为自动调整.我试过没有设置宽度,我尝试了很多东西而且我被卡住了.

谢谢.

xml excel openxml

12
推荐指数
1
解决办法
3万
查看次数

如何使用asp.net创建和下载excel文档

如何使用asp.net创建和下载excel文档?

目的是使用xml,linq或其他任何方式通过浏览器向客户发送excel文档.

编辑:用例

客户在浏览器中加载gridview(使用ajax框架),gridview直接链接到sql数据库.我把一个按钮'export to excel'让客户在他的计算机上保存这个gridview数据我希望启动一个excel的干净下载.

这里提出的解决方案并不干净,比如发送一个html文档并将标题更改为excel文档等,我现在正在搜索一个关于codeplex的简单解决方案,我会告诉你.

c# asp.net excel openxml

11
推荐指数
1
解决办法
5万
查看次数

使用MemoryStream创建Open XML电子表格时的Excel和"不可读的内容"

使用Open XML SDK v2.0创建Excel电子表格时,我们的Excel输出最初成功运行了几个月.最近Excel(所有版本)开始抱怨"Excel在'zot.xlsx'中找到了不可读的内容.你想恢复这个工作簿的内容吗?".我们使用MemoryStream作为存储在Web应用程序中创建文件,然后将其作为byte []发送到HTTP响应中,MIME类型为"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet".坏文件的解压缩内容与没有错误的文件的解压缩内容相同.

xml excel memorystream openxml openxml-sdk

11
推荐指数
1
解决办法
8424
查看次数

Open XML - 如何在docx文档中添加水印

我正在尝试获取现有文档,如果标题不存在,请创建一个,然后在对角线上标题为"DRAFT"的标题中添加水印.我已经按照这里发布的示例进行了操作,如果标题已经存在,我会将代码添加到添加水印的位置.

当前的问题是,当我添加新标题,添加对文档的引用,然后将水印添加到标题时,文档已损坏,无法再在Word 2010中打开.

为了测试我一直在做以下事情:从页面本身创建一个新的word文档,在页面的主要部分使用"TestDoc"文本.以"TestDoc.docx"保存到我的桌面并关闭该文件.然后我从Visual Studio运行应用程序.下面的代码将始终使其损坏.如果我在文件中添加一个没有文字的标题,然后点击保存,水印将正确显示.

这是我到目前为止:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Vml;
using DocumentFormat.OpenXml.Vml.Office;
using DocumentFormat.OpenXml.Vml.Wordprocessing;
using DocumentFormat.OpenXml.Wordprocessing;
using HorizontalAnchorValues = DocumentFormat.OpenXml.Vml.Wordprocessing.HorizontalAnchorValues;
using Lock = DocumentFormat.OpenXml.Vml.Office.Lock;
using VerticalAnchorValues = DocumentFormat.OpenXml.Vml.Wordprocessing.VerticalAnchorValues;

namespace DocumentWatermarkTest
{
    class Program
    {
        static void Main(string[] args)
        {
            var doc = WordprocessingDocument.Open(@"C:\Users\loggedinuser\Desktop\TestDoc.docx", true);
            AddWatermark(doc);
            doc.MainDocumentPart.Document.Save();
        }

        static Header MakeHeader()
        {
            var header = new Header();
            var paragraph = new Paragraph();
            var run = new Run();
            var text …
Run Code Online (Sandbox Code Playgroud)

.net c# openxml

11
推荐指数
1
解决办法
1万
查看次数

C#openxml删除段落

我试图使用OpenXML从.docx文件中删除段落(我使用一些占位符文本从docx模板文件生成),但每当我删除段落时,它会破坏我用来迭代的foreach循环.

MainDocumentPart mainpart = doc.MainDocumentPart;
IEnumerable<OpenXmlElement> elems = mainPart.Document.Body.Descendants();

foreach(OpenXmlElement elem in elems){
    if(elem is Text && elem.InnerText == "##MY_PLACE_HOLDER##")
    {
        Run run = (Run)elem.Parent;
        Paragraph p = (Paragraph)run.Parent;
        p.RemoveAllChildren();
        p.Remove();
    }
}
Run Code Online (Sandbox Code Playgroud)

这工作,删除我的占位符和它所在的段落,但foreach循环停止迭代.在foreach循环中我需要做更多的事情.

这是正常使用的OpenXML和删除在C#中的段落方式为什么我的foreach循环停止或如何使它不会停止?谢谢.

c# openxml

11
推荐指数
2
解决办法
9313
查看次数

使用DocumentFormat.OpenXml dll读取.Doc文件

当我尝试使用DocumentFormat.OpenXml dll读取.doc文件时,它给出的错误为"文件包含损坏的数据".

这个DLL正在正确读取.docx文件.

DocumentFormat.OpenXml dll可以帮助读取.doc文件吗?

string path = @"D:\Data\Test.doc";
string searchKeyWord = @"java";

private bool SearchWordIsMatched(string path, string searchKeyWord)
{
    try
    {
       using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(path, true))
       {
           var text = wordDoc.MainDocumentPart.Document.InnerText;
           if (text.Contains(searchKeyWord))
               return true;
           else
               return false;
       }
     }
     catch (Exception ex)
     {
         throw ex;
     }
}
Run Code Online (Sandbox Code Playgroud)

c# ms-word openxml openxml-sdk

11
推荐指数
3
解决办法
1万
查看次数

打开excel文件会提示消息框"工作簿的内容恢复"

当我正在尝试打开excel文件时,一个消息框提示"我们发现文件名中有一些内容存在问题.您是否希望我们尝试尽可能多地恢复?如果您信任此工作簿的来源,单击是. " 实际做的是我有一个excel模板设计并将文件复制到另一个文件并创建临时文件我正在使用OPEN XML将数据插入临时文件并且数据来自数据库.

我已经尝试过网络中提供的解决方案,但这些解决方案并没有解决我的问题.我的擅长是2010年

在此输入图像描述

在此输入图像描述

提供任何解决方案非常感谢.

excel openxml

11
推荐指数
2
解决办法
2万
查看次数

设置xlsx以在打开时重新计算公式

我正在生成xlsx文件,并且不希望在此过程中计算所有公式的值.也就是说,我想<v>为具有a的单元格设置为0(或省略它)<f>,并在打开时使用Excel填充值.

一个建议是Calculate在启动时运行宏,但是无法找到有关如何使用签名宏执行此操作的完整指南,以避免提示用户.你可以在xlsx中的某个地方设置一个标志会好得多.

编辑:我不是在寻找涉及使用Office程序进行更改的答案.我正在寻找文件格式的详细信息.

openxml xlsx

11
推荐指数
1
解决办法
5319
查看次数

openXML spreadsheetdocument返回字节数组,用于MVC文件下载

我正在尝试将openXML电子表格文档作为byte []返回,然后我可以使用它来允许我的MVC将该文件发送给用户.这是我的spreadsheetdocument方法返回字节数组

using (MemoryStream mem = new MemoryStream())
{
    SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.
        Create(mem, SpreadsheetDocumentType.Workbook);

    // Add a WorkbookPart to the document.
    WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart();
    workbookpart.Workbook = new Workbook();

    // Add a WorksheetPart to the WorkbookPart.
    WorksheetPart worksheetPart = workbookpart.AddNewPart<WorksheetPart>();
    worksheetPart.Worksheet = new Worksheet(new SheetData());

    // Add Sheets to the Workbook.
    Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.
        AppendChild<Sheets>(new Sheets());

    SheetData sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();

    //row start
    for (int id = 0; id <= reports.Count(); id++)
    {
        if (id == 0)
        {
            Row …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc openxml openxml-sdk asp.net-mvc-4

11
推荐指数
1
解决办法
1万
查看次数

条件格式化颜色渐变与硬停止

我在Excel工作表中有一列数据,其中包含正值和负值.我希望能够做的是应用条件格式(颜色渐变),从深绿色到浅绿色表示正值,浅红色表示深红色表示负值.

但是,我似乎无法做到这一点.如果我将条件格式从最大值应用到零,将零作为浅绿色,那么所有负值也将最终变为浅绿色.有没有一种方法,使一个条件格式仅适用一定值,而不是超越?我可以类似地为负值制作条件格式,但同样会将正值着色为浅红色.如果我在同一张纸上都有,那么哪个优先级最高.

更新:虽然这真的很难看,但我决定试图找出哪些单元格大于0(或实际上是中点值,1.33在这种情况下为〜),哪些单元格较低,并将单元格引用明确设置为这些单元格.所以我尝试了这样的定义条件格式(正绿色标度):

<x:conditionalFormatting sqref="$E$5 $E$6 $E$10 $E$13 $E$15 $E$17 $E$18 $E$19 $E$22 $E$24 $E$25..." xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
  <x:cfRule type="colorScale" priority="1">
    <x:colorScale>
      <x:cfvo type="num" val="1.13330279612636" />
      <x:cfvo type="num" val="1.91050388235334" />
      <x:color rgb="d6F4d6" />
      <x:color rgb="148621" />
    </x:colorScale>
  </x:cfRule>
</x:conditionalFormatting>
Run Code Online (Sandbox Code Playgroud)

就像这样(负红色刻度):

<x:conditionalFormatting sqref="$E$4 $E$7 $E$8 $E$9 $E$11 $E$12 $E$14 $E$16 $E$20 $E$21 $E$23 $E$26 $E$28 $E$29 $E$30..." xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
  <x:cfRule type="colorScale" priority="1">
    <x:colorScale>
      <x:cfvo type="num" val="0.356101709899376" />
      <x:cfvo type="num" val="1.13330279612636" />
      <x:color rgb="985354" />
      <x:color rgb="f4dddd" />
    </x:colorScale>
  </x:cfRule> …
Run Code Online (Sandbox Code Playgroud)

excel formatting conditional openxml

11
推荐指数
1
解决办法
8519
查看次数