标签: closedxml

使用ClosedXML下载文件

所有

如何下载文件以便用户看到它正在下载(如使用流?)

我目前正在使用ClosedXML,但如果我使用SaveAs方法,我必须提供一个硬编码的URL,如果我只是给它文件名,它不会自动下载到下载文件夹.

下面的方法效果很好,但我必须创建自己的excel文件,该文件基于HTML,并且文件增长得太大,当我使用ClosedXML时,文件的大小只有50%或更少.代码如下:但是,下载行为是我希望它的样子.

有没有办法可以转换下面的代码,所以我可以把我的'工作簿'作为一个对象,它只是下载这个工作簿?

HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls");
HttpContext.Current.Response.Charset ="UTF-8";    
HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType = "application/ms-excel";
ctl.Page.EnableViewState =false;   
System.IO.StringWriter  tw = new System.IO.StringWriter() ;
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);
ctl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
Run Code Online (Sandbox Code Playgroud)

谢谢

c# asp.net closedxml

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

使用ClosedXML从Excel文件中读取

我的Excel文件不在表格数据中.我试图从excel文件中读取.我的excel文件中的部分是表格式的.

我需要遍历第3到第20行,这些是表格并读取数据.

这是我的代码派对:

     string fileName = "C:\\Folder1\\Prev.xlsx";
     var workbook = new XLWorkbook(fileName);
     var ws1 = workbook.Worksheet(1); 
Run Code Online (Sandbox Code Playgroud)

如何循环第3到第20行并读取第3,4,6,7,8列?此外,如果一行为空,我如何确定,以便我可以跳过它而不读取每列具有给定行的值.

c# closedxml

22
推荐指数
3
解决办法
6万
查看次数

使用ClosedXML如何调整行高到内容?

我用文本创建单元格.之后我设置了WrapText属性和列宽.

var cell = worksheet.Cell("A1");
cell.Style.Alignment.WrapText = true;
cell.SetValue("This is very long text");
worksheet.Column(1).Width = 10;
worksheet.Rows().AdjustToContents();
Run Code Online (Sandbox Code Playgroud)

文本已被单词移动,但行高不会更改.如何调整行高到单元格内容?

c# closedxml

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

无法安装 ClosedXML 依赖项

我需要安装 ClosedXML 依赖项来使用 .net Framework 4.7.2 构建 C# 项目,但在尝试安装时总是收到相同的错误:“无法解析依赖项 'SixLabors.Fonts'。使用的来源:'nuget.org', ' Microsoft Visual Studio 离线包'"

我已尝试从 nuget 包管理器安装的所有内容

visual-studio nuget-package closedxml

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

OpenXML库(ClosedXML的替代品)

有哪些库可以扩展OpenXML(或者为OpenXML添加一种抽象层),类似于ClosedXML?

我正在寻找至少1.0版本的商业或免费软件工具.

先感谢您.

.net office-2007 openxml closedxml

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

ClosedXML - 创建多个数据透视表

我正在尝试将一些数据导出到excel表,S1其数据将在接下来的两个表中显示为Pivoted视图S2 and S3.我能够创建一个单一的枢轴,它完美无缺.但是当我创建两个枢轴时,后续的Excel文件呈现为损坏.

腐败我的意思是,

点击是,我得到了 -

腐败

这是我用来创建枢轴的代码 -

using XL = ClosedXML.Excel;
...
XL.XLWorkbook wb = new XL.XLWorkbook();
dsData = Session["ExportData"] as DataSet;

var sheet1 = wb.Worksheets.Add("output table");
sheet1.Cell(1, 1).InsertTable(dsData.Tables[0], "output table", true);

// sheet1 is the reference sheet S1
var dataRange = sheet1.RangeUsed();

// First Pivot
XL.IXLWorksheet ptSheet1 = wb.Worksheets.Add("S2");

var pt1 = ptSheet1.PivotTables.AddNew("PivotTable1", ptSheet.Cell(3, 1), dataRange);


pt1.ReportFilters.Add("CX");

pt1.RowLabels.Add("C1");
pt1.RowLabels.Add("C2");
pt1.RowLabels.Add("C3");
pt1.RowLabels.Add("C4");

pt1.ColumnLabels.Add("CL1");
pt1.ColumnLabels.Add("CL2");
pt1.ColumnLabels.Add("CL3");

pt1.Values.Add("V").SummaryFormula = XL.XLPivotSummary.Sum;


// Second Pivot
XL.IXLWorksheet ptSheet2 = wb.Worksheets.Add("S3"); …
Run Code Online (Sandbox Code Playgroud)

c# excel openxml export-to-excel closedxml

15
推荐指数
1
解决办法
2282
查看次数

将excel单元格格式保留为带有"date like"数据的文本

这看起来很愚蠢,但是我无法以#/####格式化字符串的形式获取我的值,而不是将其格式化为excel中的日期.

我正在使用ClosedXML写入excel,并使用以下内容:

// snip
IXLRangeRow tableRow = tableRowRange.Row(1);
tableRow.Cell(1).DataType = XLCellValues.Text;
tableRow.Cell(1).Value = "2/1997";
// snip
Run Code Online (Sandbox Code Playgroud)

查看输出excel表我进入单元格2/1/1997- 即使我在代码中将格式设置为文本,我在excel表中将其作为"日期" - 我通过右键单击单元格检查了这一格式,格式单元格,将"日期"视为格式.

如果我改变了:

// snip
IXLRangeRow tableRow = tableRowRange.Row(1);
tableRow.Cell(1).Value = "2/1997";
tableRow.Cell(1).DataType = XLCellValues.Text;
// snip
Run Code Online (Sandbox Code Playgroud)

我改为35462输出.

我只想让我的文字值2/1997显示在工作表上.请告知如何纠正.

c# asp.net excel closedxml

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

多个数据透视表ClosedXML

在Net 4.5.1上使用最新的Closed XML(0.76)

使用表创建一个工作表:

 DataTable Table = ...

 var DataWorkSheet = Workbook.Worksheets.Any(x => x.Name == "Data") ?
   Workbook
     .Worksheets
     .First(x => x.Name == "Data") :
   Workbook
     .Worksheets
     .Add("Data");

 int Start = ... // calculate cell start

 var Source = DataWorkSheet
   .Cell(Start, 1)
   .InsertTable(Table, Name, true);

 var Range = Source.DataRange;
Run Code Online (Sandbox Code Playgroud)

这是在循环内完成的(即"数据"表中的多个表).如果在单独的工作表中创建多个数据透视表,则无法打开生成的Excel文档时出现问题.

 var PivotWorkSheet = Workbook
   .Worksheets
   .Add(Name);

 var Pivot = PivotWorkSheet
   .PivotTables
   .AddNew(Name, PivotWorkSheet.Cell(1, 1), DataRange);
Run Code Online (Sandbox Code Playgroud)

任何想法为什么以及如何调试?

c# closedxml

9
推荐指数
1
解决办法
911
查看次数

如何在closedXml c#中禁用自动过滤器?

我在closedXML库中面临一个奇怪的问题.

我正在使用closedXML库将数据表导出到.xlsx(excel文件).默认情况下,库中启用了自动过滤器.

我想禁用或删除自动过滤器并仅导出数据表.

这是我尝试过的代码,但它不起作用

XLWorkbook wb = new XLWorkbook();
var ws = wb.Worksheets.Add("Test");
ws.Cell(1, 1).InsertTable(dataTable);
ws.AutoFilter.Enabled = false;
ws.Columns().AdjustToContents();
wb.SaveAs("Report.xlsx");
Run Code Online (Sandbox Code Playgroud)

而且我也试过了

ws.AutoFilter.Clear();
Run Code Online (Sandbox Code Playgroud)

即使是柱式透明过滤器也不起作用

ws.AutoFilter.Column(1).Clear();
Run Code Online (Sandbox Code Playgroud)

c# excel closedxml

9
推荐指数
1
解决办法
7977
查看次数

从Excel文档中的代码隐藏到达ActiveX或表单对象(文本框)

excel文件中有几个文本框作为ActiveX对象,我想从代码隐藏中访问它们.

我在其他领域使用ClosedXML,但我愿意接受其他建议.

.net c# excel vba closedxml

9
推荐指数
1
解决办法
952
查看次数