![](/img/trans.png)
[英]C# How do I append a Cell to every Row in a Excel Sheet using OpenXmlWriter (OpenXML SDK 2.5)
[英]C# - Export excel sheet to image using OpenXml SDK
我想用 DocumentFormat.OpenXml 将我的 excel 表转换为图像
我的代码是:
class Program
{
static void Main()
{
String fileName = @"/Users/user/Downloads/Test.xlsx";
String path = @"/Users/user/Downloads/Test.png";
// Open the document for editing.
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(fileName, false))
{
WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();
OpenXmlReader reader = OpenXmlReader.Create(worksheetPart);
string text;
while (reader.Read())
{
if (reader.ElementType == typeof(CellValue))
{
text = reader.GetText();
Console.Write(text + " ");
}
}
Console.WriteLine();
//Console.ReadKey();
worksheetPart.Worksheet.Save();
workbookPart.Workbook.Save();
spreadsheetDocument.SaveAs(path);
}
}
}
它给出了一个错误
Unhandled exception. System.IO.IOException: Cannot get stream with FileMode.Create, FileMode.CreateNew, FileMode.Truncate, FileMode.Append when access is FileAccess.Read.
at System.IO.Packaging.PackagePart.ThrowIfOpenAccessModesAreIncompatible(FileMode mode, FileAccess access)
at System.IO.Packaging.PackagePart.GetStream(FileMode mode, FileAccess access)
at System.IO.Packaging.PackagePart.GetStream(FileMode mode)
at DocumentFormat.OpenXml.Packaging.OpenXmlPart.GetStream(FileMode mode)
at DocumentFormat.OpenXml.OpenXmlPartRootElement.SaveToPart(OpenXmlPart openXmlPart)
at DocumentFormat.OpenXml.OpenXmlPartRootElement.Save()
at Program.Main() in /Users/user/C#/Program.cs:line 36
如何将读取文件转换为图像顺便说一句我无法使用任何其他模块
您要从单元格或整个工作表中导出图像吗? 因为在您的代码中您试图将文本导出到图像。在这种情况下,您需要在图片框中创建图像并保存它。 您不能将字符串等文本保存到图像。 这是不同的格式。
取而代之的是,您可以尝试通过 OpenXML 从 excel 中收集数据并将其绘制在图片框上:
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
using (Font myFont = new Font("Arial", 14))
{
e.Graphics.DrawString("Hello .NET Guide!", myFont, Brushes.Green, new Point(2, 2));
}
}
之后,您可以从这个图片框将图像保存到.png。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.