2013-10-17 9 views
5

Eski sistem, Excel 2003'ü kullanmaktadır, bu yüzden 2007 ve üstü için olduğu gibi yeni üçüncü taraf ürünlerden herhangi birini kullanamıyorum ve eski bir XML Elektronik Tablo oluşturma sistemi ile birlikte kaldım.XML Elektronik Tablosu MVC kullanarak Excel'e, Hücre formatı her zaman Genel, nasıl değiştirilir?

Şimdi Excel'de biçimlenen hücreyi değiştirmem gerekiyor, böylece bir sayı sayı, tarih bir tarih, vb ... Her şey halihazırda Excel'de Genel olarak biçimlendiriliyor.

I ağ-taranır ve sadece şekillendirme ve çalışma kitabı bölüm için kısmi görünümü, aşağıdaki kodlama çalıştık:

<ss:Style ss:ID="MyTime"> 
<NumberFormat ss:Format="Long Time" /> 
</ss:Style> 
<ss:Style ss:ID="MyNumber"> 
<NumberFormat ss:Format="General Number" /> 
</ss:Style> 

Bu

<Cell ss:StyleID='MyNumber'><Data ss:Type='Number'>419,717,200</Data></Cell> 
XML outfile temsil edilmektedir

Bu ana görünümde oluşturulan ve kullanarak satır satır inşa edilmiştir:

private static IHtmlString ToXmlColumn(string columnContent, string ssType, string ssFormat) 
{ 
return MvcHtmlString.Create(string.Format("<Cell ss:StyleID='{2}'><Data ss:Type='{1}'>{0}</Data></Cell>", SecurityElement.Escape(columnContent), ssType, ssFormat)); 
} 

İndir uygulama/tabanını kullanan ben xls indirip Excel 2003'te yeniden açıldığında

public ExcelActionResult(string fileName, TModel model, ControllerContext context, string viewName = null) 
     : base("application/vnd.ms-excel") 
    { 
     _context = context; 
     _model = model; 
     _viewName = viewName ?? (string)_context.RouteData.Values["action"]; 

     FileDownloadName = fileName; 



    } 

Ancak tüm hücre biçimleri Genel hala vnd.ms-excel.

Neyi özledim ya da neyi yanlış yapıyorum?

Bu kod, sistemde her yerdedir, bu yüzden yeniden yazmak veya XSD oluşturmak için XML çıktısını kullanmak yerine ve son tarihin benim için çok sıkı olması için haritayı çizmek yerine, bir düzeltme veya geçici çözüm arıyorum. Başkasının benzer bir şey bulmak gerekiyor

durumda

kendim cevap verecektir: Ben resmen altındaki kendi soruya cevap Çünkü

, burada cevaptır.

http://office.microsoft.com/en-gb/excel-help/number-format-codes-HP005198679.aspx

Ama bu değiştirerek bakmak istiyorum: özel kodları için buraya

bakış kullanmak için bir numara

<ss:Style ss:ID="MyTime"> 
<NumberFormat ss:Format="HH:MM:SS" /> 
</ss:Style> 

<ss:Style ss:ID="MyNumber"> 
<NumberFormat ss:Format="0" /> 
</ss:Style> 
eğer aşağıda ile

<ss:Style ss:ID="MyTime"> 
<NumberFormat ss:Format="Long Time" /> 
</ss:Style> 

<ss:Style ss:ID="MyNumber"> 
<NumberFormat ss:Format="General Number" /> 
</ss:Style> 

isteyen

veya 12000,00 özel olarak 12.000,00 olarak görüntülemek istiyorsanız yerine

<ss:Style ss:ID="MyNumber"> 
<NumberFormat ss:Format="#,##0.00" /> 
</ss:Style> 

genel daha yukarıda yüzden de bulmak can sıkıcı ve zor olduğu gibi bulmak herhangi bir XML elektronik tablo sorgusu bu cevap verecektir bulmak için internette bütün gün avcılık geçirdim.

+0

Teşekkür ederiz! Cevabınız () benim için harika çalıştı. Kayıt için, aslında kendi sorunuz için bir cevap yazabileceğinizi düşünüyorum. – ScottyG

cevap

1

2003 Excel yok mu, ama Excel 2013 "XML elektronik 2003 (*. Xml)" olarak kaydedebilirsiniz Bu XML dosyası aşağıdaki gibi çıkar.

Bu stil, ondalık, bin "yok" olarak görüntülenecektir.

<Style ss:ID="s64"> 
    <NumberFormat ss:Format="0"/> 
</Style 

Stil Kimliği 1000 ayırıcı olarak "" Bu tarz ile 2 ondalık basamağa kadar gösterecektir <Column ss:StyleID="s64" ss:Width="61.5"/>

gibi Sütun etiketi bağlanmalıdır.

<Style ss:ID="s66"> 
    <NumberFormat ss:Format="Standard"/> 
</Style> 

Ve bu uzun tarih ve saat biçimi olmalıdır: bu sizin için doğru yönde olduğunu

<NumberFormat ss:Format="m/d/yy\ h:mm;@"/> 

Umut. İyi şanslar!

<?xml version="1.0"?> 
<?mso-application progid="Excel.Sheet"?> 
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" 
xmlns:o="urn:schemas-microsoft-com:office:office" 
xmlns:x="urn:schemas-microsoft-com:office:excel" 
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" 
xmlns:html="http://www.w3.org/TR/REC-html40"> 
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> 
    <Author>YourName</Author> 
    <LastAuthor>YourName</LastAuthor> 
    <Created>2015-06-25T18:25:51Z</Created> 
    <Version>15.00</Version> 
</DocumentProperties> 
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office"> 
    <AllowPNG/> 
</OfficeDocumentSettings> 
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> 
    <WindowHeight>9195</WindowHeight> 
    <WindowWidth>17280</WindowWidth> 
    <WindowTopX>0</WindowTopX> 
    <WindowTopY>0</WindowTopY> 
    <ProtectStructure>False</ProtectStructure> 
    <ProtectWindows>False</ProtectWindows> 
</ExcelWorkbook> 
<Styles> 
    <Style ss:ID="Default" ss:Name="Normal"> 
    <Alignment ss:Vertical="Bottom"/> 
    <Borders/> 
    <Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/> 
    <Interior/> 
    <NumberFormat/> 
    <Protection/> 
    </Style> 
    <Style ss:ID="s63"> 
    <NumberFormat ss:Format="[h]:mm:ss;@"/> 
    </Style> 
    <Style ss:ID="s64"> 
    <NumberFormat ss:Format="0"/> 
    </Style> 
</Styles> 
<Worksheet ss:Name="Sheet1"> 
    <Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="2" x:FullColumns="1" 
    x:FullRows="1" ss:DefaultRowHeight="15"> 
    <Column ss:StyleID="s63" ss:AutoFitWidth="0"/> 
    <Column ss:StyleID="s64" ss:Width="60"/> 
    <Row> 
    <Cell><Data ss:Type="String">My Time</Data></Cell> 
    <Cell><Data ss:Type="String">My Number</Data></Cell> 
    </Row> 
    <Row> 
    <Cell><Data ss:Type="DateTime">1899-12-31T12:12:34.000</Data></Cell> 
    <Cell><Data ss:Type="Number">123213</Data></Cell> 
    </Row> 
    </Table> 
    <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"> 
    <PageSetup> 
    <Header x:Margin="0.3"/> 
    <Footer x:Margin="0.3"/> 
    <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/> 
    </PageSetup> 
    <Print> 
    <ValidPrinterInfo/> 
    <HorizontalResolution>600</HorizontalResolution> 
    <VerticalResolution>600</VerticalResolution> 
    </Print> 
    <Selected/> 
    <Panes> 
    <Pane> 
    <Number>3</Number> 
    <ActiveCol>1</ActiveCol> 
    <RangeSelection>C2</RangeSelection> 
    </Pane> 
    </Panes> 
    <ProtectObjects>False</ProtectObjects> 
    <ProtectScenarios>False</ProtectScenarios> 
    </WorksheetOptions> 
</Worksheet> 
</Workbook> 
İlgili konular