2010-10-01 7 views
3

У меня есть код для записи данных в CSV-файл, но он записывает данные в CSV без правильного его форматирования. Я хочу выделить какой-то конкретный текст. Это возможно?Могу ли я форматировать данные, которые должны быть записаны в CSV-файле, используя java

ответ

5

CSV это обычный текстовый формат, так что вы не можете сделать любое форматирование.

Если вы хотите форматировать, рассмотрите возможность использования библиотеки Excel, такой как Apache POI или Jasper Reports. (Конечно, тогда вы получите файл excel, а не CSV, поэтому в зависимости от вашей ситуации, которая может быть или не подходит)

В качестве примечания, есть некоторые странные нюансы для написания CSV (например, убедившись, что котировки, запятые и т. д. правильно экранированы). Там хорошая библиотека, которую я использовал, называется Open CSV, которая может сделать вашу жизнь проще, если вы решите просто придерживаться простой старой CSV.

3

CSV - это формат текстового файла, вы не можете использовать какой-либо текстовый эффект.

2

Не знаю, что мне известно, CSV - это простой текстовый формат. Если вы создаете csv, чтобы открыть его в Excel, я бы предложил взглянуть на формат MS Excel XML.

http://en.wikipedia.org/wiki/Microsoft_Office_XML_formats#Excel_XML_Spreadsheet_example

Примером может выглядеть следующим образом (взяты из ссылки википедии, и это делает текст BOLD)

<?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>Darl McBride</Author> 
    <LastAuthor>Bill Gates</LastAuthor> 
    <Created>2007-03-15T23:04:04Z</Created> 
    <Company>SCO Group, Inc.</Company> 
    <Version>11.8036</Version> 
    </DocumentProperties> 
    <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> 
    <WindowHeight>6795</WindowHeight> 
    <WindowWidth>8460</WindowWidth> 
    <WindowTopX>120</WindowTopX> 
    <WindowTopY>15</WindowTopY> 
    <ProtectStructure>False</ProtectStructure> 
    <ProtectWindows>False</ProtectWindows> 
    </ExcelWorkbook> 
    <Styles> 
    <Style ss:ID="Default" ss:Name="Normal"> 
     <Alignment ss:Vertical="Bottom" /> 
     <Borders /> 
     <Font /> 
     <Interior /> 
     <NumberFormat /> 
     <Protection /> 
    </Style> 
    <Style ss:ID="s21"> 
     <Font x:Family="Swiss" ss:Bold="1" /> 
    </Style> 
    </Styles> 
    <Worksheet ss:Name="Sheet1"> 
    <Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="5" 
     x:FullColumns="1" x:FullRows="1"> 
     <Row> 
     <Cell> 
      <Data ss:Type="String">Text in cell A1</Data> 
     </Cell> 
     </Row> 
     <Row> 
     <Cell ss:StyleID="s21"> 
      <Data ss:Type="String">Bold text in A2</Data> 
     </Cell> 
     </Row> 
     <Row ss:Index="4"> 
     <Cell ss:Index="2"> 
      <Data ss:Type="Number">43</Data> 
     </Cell> 
     </Row> 
     <Row> 
     <Cell ss:Index="2" ss:Formula="=R[-1]C/2"> 
      <Data ss:Type="Number">21.5</Data> 
     </Cell> 
     </Row> 
    </Table> 
    <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"> 
     <Print> 
     <ValidPrinterInfo /> 
     <HorizontalResolution>600</HorizontalResolution> 
     <VerticalResolution>600</VerticalResolution> 
     </Print> 
     <Selected /> 
     <Panes> 
     <Pane> 
      <Number>3</Number> 
      <ActiveRow>5</ActiveRow> 
      <ActiveCol>1</ActiveCol> 
     </Pane> 
     </Panes> 
     <ProtectObjects>False</ProtectObjects> 
     <ProtectScenarios>False</ProtectScenarios> 
    </WorksheetOptions> 
    </Worksheet> 
</Workbook 
0

I обычная почта обычный CSV no. Но нет причин, по которым вы не могли кодировать свои данные до его написания ... например, HTML-теги для жирного текста - <b> </b >. Это означало бы вам точно, какие части текста выделены жирным шрифтом и быть хорошо известным стандартом. Главный недостаток заключается в том, что вам необходимо проанализировать свои данные после его чтения :(

Что-то еще следует учитывать, поскольку вы пишете данные, почему бы не записать их как значения, разделенные запятой, в RTF или какой-либо другой формат, который поддерживает полужирный и т. д. Обычно CSV - это простой текст, но нет причин, по которым вы не могли бы написать его другим способом. Не забудьте прочитать его обратно в том же формате ...

Смежные вопросы