OpenXMLWriter を使用して質問があります。
現在、以下のコードを使用して Excel ファイルを作成していますが、列の幅を設定したいと考えています。どうすればいいですか?
Worksheet() と SheetData() の間に新しい列を書き込もうとしたため、これまでのところ成功していません。
例は非常に役に立ちます。感謝して、ありがとう!
using (SpreadsheetDocument xl = SpreadsheetDocument.Create("LargeFile.xlsx", SpreadsheetDocumentType.Workbook))
{
List<OpenXmlAttribute> oxa;
OpenXmlWriter oxw;
xl.AddWorkbookPart();
WorksheetPart wsp = xl.WorkbookPart.AddNewPart<WorksheetPart>();
oxw = OpenXmlWriter.Create(wsp);
oxw.WriteStartElement(new Worksheet());
oxw.WriteStartElement(new SheetData());
for (int i = 1; i <= 50000; ++i)
{
oxa = new List<OpenXmlAttribute>();
// this is the row index
oxa.Add(new OpenXmlAttribute("r", null, i.ToString()));
oxw.WriteStartElement(new Row(), oxa);
for (int j = 1; j <= 100; ++j)
{
oxa = new List<OpenXmlAttribute>();
// this is the data type ("t"), with CellValues.String ("str")
oxa.Add(new OpenXmlAttribute("t", null, "str"));
// it's suggested you also have the cell reference, but
// you'll have to calculate the correct cell reference yourself.
// Here's an example:
//oxa.Add(new OpenXmlAttribute("r", null, "A1"));
oxw.WriteStartElement(new Cell(), oxa);
oxw.WriteElement(new CellValue(string.Format("R{0}C{1}", i, j)));
// this is for Cell
oxw.WriteEndElement();
}
// this is for Row
oxw.WriteEndElement();
}