是否可以在ClosedXML中进行查找?我浏览了他们的文档,没有记录.我怎样才能看看ClosedXML中包含的所有方法,所以我可以自己找到一些这样的东西?
当我尝试更改整个列的格式时遇到问题。
我的问题是我没有得到 XLCellValues 操作数。我可以选择 XLDataType.Text 但这不起作用。这就是我所拥有的:
eventSheet.Column("A").CellsUsed().SetDataType(XLDataType.Text); 我也试过用 1 替换 A。那样也不走运。它可能是 ClosedXML 包的更新版本吗?谢谢!
我正在开发一个人力资源应用程序,需要显示工作环境 Excel 报告,如下图所示。
现在我正在寻找有关此主题的帮助,我正在使用ClosedXML.Excel,当前我正在使用我自己创建的方法生成 Excel 文件,它输入对象列表并在 http 请求的响应中创建 Excel 文件。这是代码:
public static bool ConvertToExcel<T>(IList<T> data, string excelName, string sheetName)
{
PropertyDescriptorCollection properties =
TypeDescriptor.GetProperties(typeof(T));
DataTable table = new DataTable();
foreach (PropertyDescriptor prop in properties)
table.Columns.Add(prop.Name.Replace("_"," "), Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
foreach (T item in data)
{
DataRow row = table.NewRow();
foreach (PropertyDescriptor prop in properties)
row[prop.Name.Replace("_", " ")] = prop.GetValue(item) ?? DBNull.Value;
table.Rows.Add(row);
}
try
{
using (XLWorkbook wb = new XLWorkbook())
{
wb.Worksheets.Add(table, sheetName);
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Buffer …Run Code Online (Sandbox Code Playgroud) 我正在将数据表转换为工作正常的 excel。我在数据表中有 4 列。Column1 和 Column2 是简单的文本。Column3 和 Column4 是超链接 url 和显示文本。所有 4 列都按 excel 格式导出,代码如下:
string fileName = ConfigurationManager.AppSettings["filename"];
string sheetName = System.IO.Path.GetFileNameWithoutExtension(fileName);
using (XLWorkbook wb = new XLWorkbook())
{
var ws = wb.Worksheets.Add(ptDataTable, sheetName);
ws.Style.Font.FontName = "Arial";
ws.Style.Font.FontSize = 10;
ws.Style.Alignment.WrapText = true;
ws.FirstRow().Style.Alignment.SetWrapText(true);
ws.Style.Alignment.SetWrapText(true);
ws.Style.Alignment.SetShrinkToFit(true);
ws.Style.Alignment.Vertical = XLAlignmentVerticalValues.Top;
ws.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Left;
ws.Rows().AdjustToContents();
ws.Columns().AdjustToContents();
ws.Rows(2,200).Style.Fill.SetBackgroundColor((XLColor.Transparent));
ws.Columns(9, 10).Width = 50.0;
ws.Range("A2:J200").Style.Border.SetInsideBorder(XLBorderStyleValues.Thin);
ws.Range("A2:J200").Style.Border.SetOutsideBorder(XLBorderStyleValues.Thin);
using (MemoryStream stream = new MemoryStream())
{
wb.SaveAs(stream);
return File(stream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName);
}
}
Run Code Online (Sandbox Code Playgroud)
我想用 column3(url) 和 …
我在 asp.net 项目中使用 closedxml 来生成文件 excel,现在我想将我的 excel 文件保存到我的本地电脑,但它现在可以工作了。[我已经在我的本地浏览器中尝试过并将它保存到我的服务器文件夹中]。我真的需要你的指导。谢谢。
这是我的代码:
Dim wb As XLWorkbook = New XLWorkbook
wb.Worksheets.Add(datatable01, "sheetdata")
wb.SaveAs("d:\myfolder\filereport.xlsx")
Run Code Online (Sandbox Code Playgroud)
它保存在服务器端的“d:\myfolder\filereport.xlsx”中。我需要它到我的本地电脑,如果可能的话,我可以选择文件夹将我的文件保存在我的本地电脑文件夹中(作为文件保存对话框)。
您好,我使用 ClosedXML.dll 创建了一个 excel 文件,当我要打开该文件时,它显示“Excel 发现无法读取的内容”消息。我的文件内容有瑞典语文本。我不知道根本原因是什么?有没有办法设置语言?如何删除该警告,请帮助我。这是代码快照。
using (XLWorkbook wb = new XLWorkbook())
{
wb.Worksheets.Add(dt); //dt is DataTable
Response.Clear();
Response.ClearHeaders();
Response.Buffer = true;
Response.Charset = "";
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;filename="+fileName+".xlsx");
Response.ContentEncoding = Encoding.UTF8;
using (MemoryStream MyMemoryStream = new MemoryStream())
{
MyMemoryStream.Capacity = (int)MyMemoryStream.Length;
wb.SaveAs(MyMemoryStream);
MyMemoryStream.WriteTo(Response.OutputStream);
Response.Flush();
Response.End();
}
}
Run Code Online (Sandbox Code Playgroud) 当我将单元格的格式设置为%并导出时,它会自动将值乘以 100 并显示该值。所以1.9变成了190%,我用这个代码来添加% 的符号。
worksheet.Cell(2, 2).Style.NumberFormat.SetFormat("0.00%");
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个问题吗?
我需要从 dataTable 添加新的工作表。对于这个任务,我使用 ClosedXML:
workbook.Worksheets.Add(dataTable);
workbook.Save();
workbook = new XLWorkbook(filePath); //reload file to avoid exception at next saving
Run Code Online (Sandbox Code Playgroud)
我的进程使用了 128 Mb 的内存,但在Workbook.Save()此数字增加到 382 Mb 之后。添加下一个工作表后,内存使用量从 464 Mb 上升到 619 Mb。但此时的实际文件为 1.6 Mb。
这可能是什么原因?
我有一个数组,我需要将元素放在一行中,数组的每个元素应该位于不同的单元格中。
foreach (var cell in range.Cells())
{
int index = 0;
cell.Value = arrayCompany[index];
index++;
if (index == count)
{
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我的数组有 10 个元素,Excel 文件生成一行,但在所有 10 列中,单元格值是数组的最后一个元素。我希望每个元素位于不同的列中。A1=arrayCompany[0],B1=arrayCompany[1] ... 第 10 列 = arrayCompany[9]
大家好,我正在尝试使用 ClosedXML 库为 excel 中的列创建一个下拉列表。我可以使用下面的代码成功创建它。
using (XLWorkbook wb = new XLWorkbook())
{
wb.Worksheets.Add(dt);
wb.Worksheets.Add(dt2);
var worksheet2 = wb.Worksheet(2);
//wb.Worksheet(1).Column(11).SetDataValidation().List("one,two,three", true); This does not work fine
wb.Worksheet(1).Column(11).SetDataValidation().List(worksheet2.Range("A2:A12"), true);// Works fine
wb.Worksheet(1).Column(11).SetDataValidation().IgnoreBlanks = true;
wb.Worksheet(1).Column(11).SetDataValidation().InCellDropdown = true;
wb.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
wb.Style.Font.Bold = true;
wb.SaveAs(targetFile);
}
Run Code Online (Sandbox Code Playgroud)
但我想用 SetDataValidation() 中的 List 的另一个重载方法做同样的事情,但那是创建 Excel,但当我尝试打开它时,它说它已损坏。您能否帮助我理解为什么其他重载方法不起作用。
有问题的方法是public void List(String list, Boolean inCellDropdown)。根据数据验证 wiki 页面,可以使用字符串列表:
//Pass a string in this format: "Option1,Option2,Option3"
var options = new List<string>{"Option1","Option2","Option3"};
var validOptions = $"\"{String.Join(",", options)}\"";
ws.Cell(1,1).DataValidation.List(validOptions, true);
Run Code Online (Sandbox Code Playgroud)